التابع const_missing
الخاص بالصنف Module
في روبي
يُستدعى التابع 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
: يضبط قيمة الثابت المعطى عند الكائن المحدد ، ثم يعيد ذلك الكائن. في حال لم يكن هناك ثابت يحمل الاسم المعطى، فسينشئ ثابتة جديدة.