ملخص - جدول للقراءة فقط
جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy — الدرس 23 من 54.
التحدي
سهلاكتب دالة makeReadOnly تأخذ original وتعيد نسخة للقراءة فقط من الجدول.
أنشئ جدولاً وكيلاً (proxy table) مع جدول ميتا (metatable) يسمح بالقراءة من الجدول الأصلي ولكنه يمنع أي تعديلات.
المنطق:
- أنشئ جدولاً وكيلاً فارغاً
- أنشئ جدول ميتا مع ضبط
__indexعلى الجدول الأصلي (للسماح بالقراءة) - أضف
__newindexإلى جدول الميتا بحيث لا يفعل شيئاً (لمنع التعديلات) - اربط جدول الميتا بالوكيل باستخدام
setmetatable() - أعد الجدول الوكيل
المعاملات:
original(table): الجدول المراد حمايته من التعديلات
القيمة المرجعة: جدول وكيل يوفر وصولاً للقراءة فقط إلى الجدول الأصلي (table)
جرّب بنفسك
function makeReadOnly(original)
-- اكتب الكود هنا
end
جميع دروس المنطق والتحكم في التدفق
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائج