التابع class_eval
الخاص بالصنف Module
في روبي
يُقبّم التابع class_eval
السلسلة النصية أو الكتلة المعطاة في سياق الوحدة التي استُدعي معها، إلا أنه عند إعطاء كتلة، البحث عن متغيرات االأصناف/الثوابت لن يتأثر. يمكن استخدامه لإضافة توابع إلى صنف ما.
يعيد module_eval
نتيجة تقييم الوسيط الممرر إليه. يحدد الوسيطان الاختياريان filename
و lineno
نص رسائل الخطأ.
البنية العامة
class_eval(string [, filename [, lineno]]) → obj
class_eval {|mod| block } → obj
المعاملات
string
السلسلة النصية المراد تقييمها.
filename و
lineno
يحدد الوسيطان الاختياريان filename
و lineno
نص رسائل الخطأ
القيمة المُعادة
يعيد module_eval
نتيجة تقييم الوسيط الممرر إليه.
أمثلة
مثال على استخدام التابع class_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)
الناتج:
Hello there!
dummy:123:in `module_eval': undefined local variable
or method `code' for Thing:Class
انظر أيضا
- التابع
class_exec
: يقيم الكتلة المعطاة في سياق الصنف/الوحدة.