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

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

يُقيّم التابع module_eval السلسلة النصية أو الكتلة المعطاة في سياق الوحدة، إلا أنه عند إعطاء كتلة، لن يتأثر البحث عن الثوابت/ الأصناف. يمكن استخدام هذا لإضافة توابع لصنف ما. تعيد module_eval نتيجة تقييم وسائطها. يحدد الوسيطان الاختياريان filename و lineno نص رسائل الخطأ.

الناتج:

Hello there!
dummy:123:in `module_eval': undefined local variable
    or method `code' for Thing:Class‎

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

module_eval(string [, filename [, lineno]])  obj
module_eval {|mod| block } obj

المعاملات

string‎

filename‎

lineno‎

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

أمثلة

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

class Thing
end
a = %q{def hello() "Hello there!" end}
Thing.module_eval(a)
puts Thing.new.hello()
Thing.module_eval("invalid code", "dummy", 123)

انظر أيضا

  • التابع method_undefined: غير موثق
  • التابع module_exec: يقيّم الكتلة الممررة في سياق الصنف/الوحدة. التابع المعرف في الكتلة ستنتمي إلى المُُستقبِل (receiver). الوسائط المُمررة إلى التابع ستُمرّر كلها إلى الكتلة. يمكن استخدام هذا إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخة (instance variables).

مصادر