التكرار باستخدام pairs()
جزء من قسم المنطق وتسلسل التنفيذ في رحلة Lua على Coddy. الدرس 1 من 54.
pairs() القيام بذلك من خلال السماح لك بالتكرار عبر جميع العناصر في الجدول، بصرف النظر عن نوع المفاتيح.يبدو تركيب استخدام pairs() في حلقة for كما يلي:for key, value in pairs(myTable) do
-- استخدم key وvalue هنا
endpairs() المفتاح والقيمة المقابلة له. وهذا يعني أنه يمكنك الوصول إلى كلتا المعلومتين والعمل بهما في الوقت نفسه.إليك مثالًا عمليًا يتضمن مخزون لاعب:local inventory = {
sword = 1,
potion = 5,
gold = 150
}
for item, quantity in pairs(inventory) do
print(item .. ": " .. quantity)
endpairs() مع أي نوع من المفاتيح، بما في ذلك السلاسل النصية والأرقام وحتى الجداول الأخرى.للتحدي: بناء سلسلة نصيةيتطلب منك التحدي أدناه إرجاع كل مُدخل كسلسلة واحدة، لذا إليك تذكيرًا بأداتين للتعامل مع السلاسل من الأساسيات. يمكنك ضم السلاسل باستخدام عامل الربط، وهو نقطتان (..). على سبيل المثال، ينتج عن "Hello" .. " " .. "World" القيمة "Hello World".إذا احتجت إلى تنسيق النص على عدة أسطر، يمكنك استخدام حرف الهروب للسطر الجديد "\n". عندما تواجه Lua الرمز "\n" داخل سلسلة نصية، فإنها تتعامل معه كأمر للانتقال إلى السطر التالي.على سبيل المثال، سينتج print("Line 1\nLine 2"):Line 1
Line 2التحدي
سهلاكتب دالة printInventory تأخذ جدول inventory وتُرجع سلسلة منسقة تسرد جميع العناصر وكمياتها.
استخدم pairs() للتكرار عبر جدول المخزون وبناء سلسلة تعرض فيها كل سطر اسم عنصر متبوعًا بكميته بالتنسيق item: quantity. يجب أن يظهر كل عنصر في سطر منفصل.
لوضع كل عنصر في سطر خاص به، استخدم محرف السطر الجديد "\n" بين الإدخالات. على سبيل المثال، سيُعرض "apple: 5\nbanana: 3" في سطرين منفصلين. انتبه إلى عدم إضافة "\n" في البداية قبل العنصر الأول: أضِفه بين العناصر فقط.
المعاملات:
inventory(جدول): جدول بأسلوب القاموس، مفاتيحه أسماء العناصر (سلاسل نصية) وقيمه كميات (أرقام)
القيمة المُعادة: سلسلة يظهر فيها كل عنصر وكميته في سطر منفصل، وتفصل بينها "\n". مثال على المخرجات لـ {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 عبر الإنترنت