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