Menu
CoddyTech

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

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

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

التحدي

سهل

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

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

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

المنطق:

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

المعاملات:

  • a (عدد): العدد الأول
  • b (عدد): العدد الثاني
  • c (عدد): العدد الثالث

القيمة المُعادة: مجموع الأعداد الثلاثة (عدد)

جرّب بنفسك

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

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

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

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

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

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

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