إنشاء الجداول و unpack()
جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy. الدرس 6 من 54.
unpack(). وتكون هذه التقنيات مفيدة بشكل خاص عند العمل مع الدوال التي تحتاج إلى معالجة مرنة للوسائط.يمكنك التقاط قيم متعددة في table بأسلوب القائمة باستخدام صيغة مُنشئ table مع الأقواس المعقوفة. يجمع هذا كل values في بنية table واحدة.local args = {10, 20, 30}
print(args[1]) -- الإخراج: 10
print(#args) -- الإخراج: 3unpack() بالعكس. فهي تأخذ جدولًا من نمط القوائم وتُعيد جميع عناصره كـ separate values. يتيح لك ذلك تمرير محتويات الجدول كوسائط فردية إلى function.مهم: بينما نقلت الإصدارات الأحدث من Lua (5.2+) هذه الدالة إلى table.unpack()، تعمل هذه البيئة باستخدام Lua 5.1، لذا يجب عليك استخدام الدالة العامة unpack().local numbers = {5, 10, 15}
print(unpack(numbers)) -- المخرجات: 5 10 15التحدي
سهلاكتب 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يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتحكم في التدفق
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائجتدرّب بنفسك: مترجم Lua عبر الإنترنت