التابع const_missing‎ الخاص بالصنف Module في روبي

من موسوعة حسوب
< Ruby‏ | Module
مراجعة 23:22، 26 أكتوبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>const_missing‎</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude> تصنيف: Ruby ...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

يُستدعى التابع const_missing عند محاولة استخدام ثابت غير معرف في الوحدة. يُمرّر إليه رمز sym الذي استُدعي معه يمثل الثابتة غير المعرفة، ويعيد قيمة ليتم استخدامها بدل ذلك الثابت. الشيفرة التالية مثال على ذلك:

في المثال التالي عند محاولة الدخول إلى ثابت غير معرف، فسيحاول تحميل ملف اسمه هو اسم الثابت بحروف صغيرة، (أي يُفترض أن تكون الثابتة Fred في الملف fred.rb). إذا وجدتها، فستعيد الصنف المحمل. حيث يقوم بتقيدم ميزة التحميل الذاتي (autoload) مشابهة لـ Kernel#autoload و #autoload.

البنية العامة

const_missing(sym)  obj

المعاملات

sym‎

القيمة المُعادة

أمثلة

مثال على استخدام التابع const_missing‎:

def Foo.const_missing(name)
  name # return the constant name as Symbol
end
Foo::UNDEFINED_CONST    #=> :UNDEFINED_CONST: symbol returned‎

انظر أيضا

  • التابع const_get: يتحقق من وجود ثابت بالاسم المحدد في الوحدة . في حال تعيين inherit، فسيشمل البحث الأسلاف أيضًا (وكذلك Object إن كانت الوحدة من النوع Module).
  • التابع const_set: يضبط قيمة الثابت المعطى عند الكائن المحدد ، ثم يعيد ذلك الكائن. في حال لم يكن هناك ثابت يحمل الاسم المعطى، فسينشئ ثابتة جديدة.

مصادر