التكرار باستخدام pairs()
جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy. الدرس 1 من 54.
pairs() القيام بذلك من خلال السماح لك بالتكرار عبر جميع الإدخالات في جدول، بغضّ النظر عن نوع المفاتيح.تبدو صياغة استخدام pairs() في حلقة for كما يلي:for key, value in pairs(myTable) do
-- استخدم key و value هنا
endpairs() كلاً من key والقيمة المقابلة له. وهذا يعني أنه يمكنك الوصول إلى كلتا المعلومتين والعمل بهما في الوقت نفسه.إليك مثالًا عمليًا مع inventory الخاص بلاعب:local inventory = {
sword = 1,
potion = 5,
gold = 150
}
for item, quantity in pairs(inventory) do
print(item .. ": " .. quantity)
endpairs() مع أي نوع من المفاتيح، بما في ذلك السلاسل النصية والأرقام أو حتى الجداول الأخرى.التعامل مع السلاسل النصيةفي Lua، يمكنك وصل السلاسل النصية معًا باستخدام عامل الربط، وهو نقطتان (..). على سبيل المثال، ينتج عن "Hello" .. " " .. "World" القيمة "Hello World".إذا كنت بحاجة إلى تنسيق النص عبر عدة أسطر، يمكنك استخدام محرف الهروب للسطر الجديد، "\n". عندما تواجه Lua الرمز "\n" داخل سلسلة نصية، فإنها تتعامل معه باعتباره أمرًا للانتقال إلى السطر التالي.على سبيل المثال، ستُخرج print("Line 1\nLine 2") ما يلي:Line 1
Line 2التحدي
سهلاكتب function printInventory تأخذ جدول inventory وتُرجع سلسلة نصية منسّقة تسرد جميع items وكمياتها.
استخدم pairs() للتكرار عبر جدول inventory وبناء سلسلة نصية بحيث يعرض كل سطر اسم item متبوعًا بكميته بالتنسيق item: quantity. يجب أن يكون كل item في سطر منفصل.
لوضع كل item في سطر خاص به، استخدم حرف السطر الجديد "\n" بين الإدخالات. على سبيل المثال، سيُعرض "apple: 5\nbanana: 3" كسطرين منفصلين. احرص على عدم إضافة "\n" بادئًا قبل first item: أضِفه فقط بين items.
المعلمات:
inventory(جدول): جدول بأسلوب القاموس تكون مفاتيحه أسماءitems(منstrings) وقيمه كميات (أرقام)
القيمة المُرجعة: سلسلة نصية تحتوي على كل item وكميته في سطر منفصل، مفصولين بواسطة "\n". مثال على output لـ {apple=5, banana=3}:apple: 5banana: 3
جرّب بنفسك
function printInventory(inventory)
-- لتنسيق المخرجات، يمكنك ربط السلاسل النصية باستخدام عامل التشغيل '..'.
-- لإضافة سطر جديد، استخدم الحرف الخاص '\n'.
-- قد تحتاج إلى طريقة لتتبع ما إذا كنت تضيف العنصر الأول أو عنصراً لاحقاً
-- لتقرر ما إذا كنت ستضيف سطراً جديداً قبل العنصر.
-- اكتب الكود هنا
endيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتحكم في التدفق
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائجتدرّب بنفسك: مترجم Lua عبر الإنترنت