pairs() مقابل ipairs()
جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy — الدرس 3 من 54.
الآن بعد أن تعلمت كلاً من pairs() و ipairs()، من المهم فهم متى تستخدم كل منهما. يعتمد الاختيار كلياً على هيكل جدولك وما تحاول تحقيقه.
استخدم ipairs() عندما يكون لديك جدول بنمط قائمة بمفاتيح صحيحة متسلسلة تبدأ من 1. يقوم بمعالجة العناصر بالترتيب ويتوقف عند أول قيمة nil، مما يجعله مثالياً للمصفوفات التي يهم فيها الترتيب.
استخدم pairs() عندما يحتوي جدولك على مفاتيح نصية، أو أنواع مفاتيح مختلطة، أو عندما تحتاج إلى الوصول إلى جميع المدخلات بغض النظر عن الفجوات. فهو يقوم بالتكرار عبر كل زوج (مفتاح-قيمة) في الجدول دون أي ترتيب محدد.
تأمل هذا الجدول المختلط:
local gameData = {
"Level 1",
"Level 2",
"Level 3",
currentLevel = 2,
playerName = "Hero"
}إذا استخدمت ipairs()، فسترى فقط سلاسل المستويات الثلاثة. وإذا استخدمت pairs()، فسترى جميع المدخلات الخمسة بما في ذلك مفاتيح السلاسل النصية.
التحدي
سهلاكتب دالة countSequentialItems تأخذ جدول data وتُعيد عدد العناصر ذات المفاتيح الصحيحة المتسلسلة.
استخدم ipairs() لعد عدد العناصر الموجودة في الجزء المتسلسل من الجدول (بدءاً من الفهرس 1 وحتى أول nil). سيساعدك هذا على فهم الفرق بين ipairs() و pairs() عند التعامل مع الجداول المختلطة.
المعاملات:
data(جدول): جدول مختلط يحتوي على مفاتيح صحيحة متسلسلة ومفاتيح نصية
القيمة المرجعة: عدد العناصر المتسلسلة (رقم)
جرّب بنفسك
function countSequentialItems(data)
-- اكتب الكود هنا
end
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتحكم في التدفق
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائج