التابع module_eval
الخاص بالصنف Module
في روبي
يُقيّم التابع 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).