التكرار باستخدام ipairs()
جزء من قسم Logic & Flow في رحلة 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(جدول): جدول بنمط قائمة يحتوي على أسماء المهام كسلاسل نصية
القيمة المرجعة: سلسلة نصية مع ترقيم كل مهمة في سطر منفصل. التنسيق:
1. task1
2. task2
3. task3ورقة مرجعية
تكرر الدالة ipairs() عبر الجداول التي تأتي على نمط القائمة بترتيب تسلسلي، بدءاً من الفهرس 1 وتتوقف عند أول قيمة nil:
for index, value in ipairs(myList) do
-- use index and value here
endمثال:
local questItems = {"Map", "Compass", "Torch", "Rope"}
for i, item in ipairs(questItems) do
print(i .. ". " .. item)
end
-- Output:
-- 1. Map
-- 2. Compass
-- 3. Torch
-- 4. Ropeالفرق الرئيسي: على عكس pairs()، تتوقف ipairs() فوراً عندما تواجه قيمة nil، حتى لو كانت هناك عناصر أخرى موجودة بعدها.
جرّب بنفسك
function listTasks(tasks)
-- اكتب الكود هنا
end
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائج