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

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

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

الناتج:

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

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

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

المعاملات

string‎

filename‎

lineno‎

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

أمثلة

مثال على استخدام التابع 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)

انظر أيضا

  • التابع autoload?: يعيد اسم الملف الذي سيُحمل إن كان الوسيط المعطى مسجلًا كـ autoload في مجال أسماء الوحدة .
  • التابع class_exec: يقيم الكتلة المعطاة في سياق الصنف/الوحدة. التابع المعرف في الكتلة ستنتمي إلى المستقبِل (receiver). ستُمرر كل الوسائط المعطاة إلى التابع إلى الكتلة. يمكن استخدام هذا إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخ (instance variables).

مصادر