التكرار باستخدام ipairs()
جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy. الدرس 2 من 54.
بينما تعمل pairs() مع أي بنية جدول، توفّر Lua دالة متخصصة تُسمى ipairs() ومصممة خصيصًا لجداول نمط القوائم. تتكرّر هذه الدالة عبر الجداول بترتيب تسلسلي، بدءًا من الفهرس 1 والاستمرار حتى تصادف قيمة nil.
صياغة ipairs() مشابهة لـ pairs():
for index, value in ipairs(myList) do
-- استخدم index و value هنا
endإليك مثالًا باستخدام قائمة بعناصر المهام:
local questItems = {"Map", "Compass", "Torch", "Rope"}
for i, item in ipairs(questItems) do
print(i .. ". " .. item)
endالمخرجات:
1. Map
2. Compass
3. Torch
4. Ropeالفرق الأساسي عن pairs() هو أن ipairs() يتوقف فورًا عندما يعثر على قيمة nil، حتى إذا كانت هناك عناصر أخرى بعدها.
التحدي
سهلاكتب دالة listTasks تأخذ جدول tasks وتُرجع سلسلة نصية منسّقة تسرد جميع المهام مع أرقام مواضعها.
استخدم ipairs() للتكرار عبر المهام بترتيب متسلسل وإنشاء سلسلة نصية يعرض فيها كل سطر رقم المهمة متبوعًا باسم المهمة بالتنسيق number. task. يجب أن تكون كل مهمة في سطر منفصل.
المعلمات:
tasks(table): جدول بنمط القائمة يحتوي على أسماء المهام كسلاسل نصية
القيمة المُرجعة: سلسلة نصية تحتوي على كل مهمة مرقّمة في سطر منفصل. التنسيق:
1. task1
2. task2
3. task3جرّب بنفسك
function listTasks(tasks)
-- اكتب الكود هنا
end
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتحكم في التدفق
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائجتدرّب بنفسك: مترجم Lua عبر الإنترنت