إنشاء الجداول و unpack()
جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy — الدرس 6 من 54.
unpack(). وتُعد هذه التقنيات مفيدة بشكل خاص عند العمل مع الدوال التي تتطلب معالجة مرنة للوسائط (arguments).يمكنك التقاط قيم متعددة في جدول بأسلوب القوائم باستخدام **بناء منشئ الجداول** (table constructor syntax) مع الأقواس المعقوفة. يقوم هذا بتجميع كل القيم في بنية جدول واحدة.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، وترجع مجموعهم باستخدام إنشاء الـ table و unpack().
قم بإنشاء table يحتوي على الوسائط الثلاثة باستخدام بناء الجملة {a, b, c}، ثم قم بفكها (unpack) وتمريرها إلى دالة أخرى تحسب مجموعها.
ملاحظة: يرجى استخدام دالة unpack() الـ global بدلاً من table.unpack() لضمان التوافق مع هذه البيئة.
المنطق:
- استخدم
{a, b, c}لإنشاءtableيحتوي على جميع الوسائط الثلاثة - إنشاء دالة منفصلة تسمى
sumتأخذ ثلاث معلمات وترجع مجموعها - استخدم
unpack()لتمرير قيم الـtableإلى دالةsum - إرجاع النتيجة من دالة
sum
المعلمات:
a(number): الرقم الأولb(number): الرقم الثانيc(number): الرقم الثالث
الإرجاع: مجموع جميع الأرقام الثلاثة (number)
جرّب بنفسك
function forwardArguments(a, b, c)
-- أنشئ دالة منفصلة تحسب المجموع
-- أنشئ جدولاً يحتوي على جميع الوسائط الثلاثة
-- فك الجدول ومرّر القيم إلى دالة المجموع
-- Hint: استخدم الدالة العامة 'unpack' لتوسيع وسائط الجدول
endيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتحكم في التدفق
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائج