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

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

جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy. الدرس 6 من 54.

توفر Lua زوجًا متكاملًا من التقنيات للتعامل مع قيم متعددة: إنشاء الجدول وunpack(). وتكون هذه التقنيات مفيدة بشكل خاص عند العمل مع الدوال التي تحتاج إلى معالجة مرنة للوسائط.يمكنك التقاط قيم متعددة في table بأسلوب القائمة باستخدام صيغة مُنشئ table مع الأقواس المعقوفة. يجمع هذا كل values في بنية table واحدة.
local args = {10, 20, 30}
print(args[1])  -- الإخراج: 10
print(#args)    -- الإخراج: 3
تقوم الدالة unpack() بالعكس. فهي تأخذ جدولًا من نمط القوائم وتُعيد جميع عناصره كـ separate values. يتيح لك ذلك تمرير محتويات الجدول كوسائط فردية إلى function.مهم: بينما نقلت الإصدارات الأحدث من Lua (5.2+) هذه الدالة إلى table.unpack()، تعمل هذه البيئة باستخدام Lua 5.1، لذا يجب عليك استخدام الدالة العامة unpack().
local numbers = {5, 10, 15}
print(unpack(numbers))  -- المخرجات: 5    10    15
تعمل هذه التقنيات معًا بسلاسة. يمكنك جمع القيم في table، ومعالجة table، ثم unpackها مرة أخرى إلى قيم فردية.
challenge icon

التحدي

سهل

اكتب function باسم forwardArguments يأخذ three numbers هي a وb وc، ويُرجع مجموعها باستخدام إنشاء table وunpack().

أنشئ table containing the three arguments باستخدام بنية {a, b, c}، ثم فكّها ومرّرها إلى function أخرى تحسب مجموعها.

ملاحظة: يُرجى استخدام function ‏unpack()‏ global بدلًا من table.unpack() لضمان التوافق مع هذه البيئة.

المنطق:

  • استخدم {a, b, c} لإنشاء table containing all three arguments
  • أنشئ separate function تُسمى sum، وتأخذ ثلاثة parameters وتُرجع مجموعها
  • استخدم unpack() لتمرير قيم table إلى function ‏sum
  • أرجع النتيجة من function ‏sum

المعلمات:

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

القيمة المُرجعة: مجموع all three numbers (number)

جرّب بنفسك

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

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

    -- فك الجدول ومرّر القيم إلى دالة المجموع
    -- تلميح: استخدم الدالة العامة 'unpack' لتوسيع وسائط الجدول

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

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

جميع دروس المنطق والتحكم في التدفق

تدرّب بنفسك: مترجم Lua عبر الإنترنت