Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ما هو الـ Metatable؟

جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy. الدرس 16 من 54.

الجدول الفوقي هو ببساطة جدول Lua عادي، لكنه يتمتع بغرض خاص. عندما تُرفق جدولًا فوقيًا بجدول آخر (ولنسمِّه الجدول «الرئيسي»)، يمكنك تغيير كيفية تصرّف ذلك الجدول الرئيسي عند إجراء عمليات معيّنة عليه.

فكّر في الأمر بهذه الطريقة: عادةً، إذا حاولت جمع جدولين باستخدام عامل التشغيل +، فلن تعرف Lua ما الذي ينبغي فعله وستُصدر خطأً. لكن باستخدام جدولٍ وصفي، يمكنك تحديد معنى الجمع لجدوليْك. يمكنك جعله يجمع القيم المتناظرة، أو يضمّ محتوياتهما، أو يفعل أي شيء آخر منطقي بالنسبة إلى برنامجك.

تعمل الجداول الوصفية من خلال تعريف دوال خاصة تُسمى الأساليب الوصفية. تحمل هذه الأساليب الوصفية أسماءً محددة تبدأ بشرطتي سفلية، مثل __add لعملية الجمع أو __index للبحث عن المفاتيح المفقودة. عندما تواجه Lua عمليةً على جدول له جدول وصفي، تتحقق مما إذا كان الجدول الوصفي يحتوي على الأسلوب الوصفي المقابل، وتستخدمه لتحديد ما ينبغي أن يحدث.

يفتح هذا المفهوم إمكانيات مثل إنشاء أنواع بيانات مخصّصة ذات سلوكياتها الخاصة، وتطبيق أنماط البرمجة كائنية التوجّه، وحماية الجداول من التعديلات غير المرغوب فيها، وغير ذلك الكثير. في الدروس القادمة، ستتعلّم كيفية إرفاق الجداول بجداول وصفية واستخدام الطرق الوصفية لتخصيص سلوكها.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق والتحكم في التدفق

تدرّب بنفسك: مترجم Lua عبر الإنترنت