Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إنشاء الجداول و unpack()

جزء من قسم Logic & Flow في رحلة Lua على Coddy — الدرس 6 من 54.

توفر Lua زوجًا متكاملاً من التقنيات للتعامل مع قيم متعددة: بناء الجداول و table.unpack(). وتعد هذه التقنيات مفيدة بشكل خاص عند التعامل مع الدوال التي تتطلب معالجة مرنة للوسائط.

يمكنك التقاط قيم متعددة في جدول بنمط قائمة باستخدام بنية منشئ الجدول مع الأقواس المتعرجة. يجمع هذا كل القيم في هيكل جدول واحد.

local args = {10, 20, 30}
print(args[1])  -- المخرجات: 10
print(#args)    -- المخرجات: 3

تقوم الدالة table.unpack() بالعكس—فهي تأخذ جدولاً بنمط القائمة وتعيد جميع عناصره كقيم منفصلة. يتيح لك ذلك تمرير محتويات الجدول كوسيطات فردية إلى دالة.

local numbers = {5, 10, 15}
print(table.unpack(numbers))  -- المخرجات: 5    10    15

تعمل هذه التقنيات معًا بسلاسة. يمكنك جمع القيم في جدول، والتلاعب بالجدول، ثم فكها مرة أخرى إلى قيم فردية.

challenge icon

التحدي

سهل

اكتب دالة forwardArguments تأخذ ثلاثة أرقام a و b و c، وتعيد مجموعهم باستخدام بناء الجدول و table.unpack().

قم بإنشاء جدول يحتوي على الوسائط الثلاثة باستخدام صيغة {a, b, c}، ثم قم بفكها (unpack) وتمريرها إلى دالة أخرى تحسب مجموعهم.

المنطق:

  • استخدم {a, b, c} لإنشاء جدول يحتوي على جميع الوسائط الثلاثة
  • أنشئ دالة منفصلة تسمى sum تأخذ ثلاثة معاملات وتعيد مجموعهم
  • استخدم table.unpack() لتمرير قيم الجدول إلى دالة sum
  • أعد النتيجة من دالة sum

المعاملات:

  • a (number): الرقم الأول
  • b (number): الرقم الثاني
  • c (number): الرقم الثالث

المخرجات: مجموع الأرقام الثلاثة (number)

ورقة مرجعية

صيغة منشئ الجدول {a, b, c, ...} تنشئ جدولاً بنمط القائمة. استخدم # للحصول على عدد العناصر.

local args = {10, 20, 30}
print(args[1])  -- الناتج: 10
print(#args)    -- الناتج: 3

table.unpack() تأخذ جدولاً بنمط القائمة وتعيد جميع عناصره كقيم منفصلة، مما يسمح لك بتمرير محتويات الجدول كوسيطات فردية إلى دالة.

local numbers = {5, 10, 15}
print(table.unpack(numbers))  -- الناتج: 5    10    15

جرّب بنفسك

function forwardArguments(a, b, c)
    -- إنشاء دالة منفصلة تحسب المجموع

    -- إنشاء جدول يحتوي على جميع الوسائط الثلاثة

    -- فك الجدول وتمرير القيم إلى دالة المجموع

end
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow