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