الفرق بين المراجعتين لصفحة: «Ruby/Module/class eval»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>class_eval</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude> تصنيف: Ruby تص...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Module]] | [[تصنيف: Ruby Module]] | ||
يُقبّم التابع <code>class_eval</code> السلسلة النصية أو الكتلة المعطاة في سياق الوحدة | يُقبّم التابع <code>class_eval</code> السلسلة النصية أو الكتلة المعطاة في سياق الوحدة التي استُدعي معها، إلا أنه عند إعطاء كتلة، البحث عن متغيرات االأصناف/الثوابت لن يتأثر. يمكن استخدامه لإضافة توابع إلى صنف ما. | ||
يعيد <code>module_eval</code> نتيجة تقييم الوسيط الممرر إليه. يحدد الوسيطان الاختياريان <code>filename</code> و <code>lineno</code> نص رسائل الخطأ. | |||
< | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">class_eval(string [, filename [, lineno]]) → obj | <syntaxhighlight lang="ruby">class_eval(string [, filename [, lineno]]) → obj | ||
سطر 14: | سطر 11: | ||
==المعاملات== | ==المعاملات== | ||
===<code>string</code>=== | ===<code>string</code>=== | ||
السلسلة النصية المراد تقييمها. | |||
===<code>filename</code> | ===<code>filename و</code><code>lineno</code>=== | ||
يحدد الوسيطان الاختياريان <code>filename</code> و <code>lineno</code> نص رسائل الخطأ | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
يعيد <code>module_eval</code> نتيجة تقييم الوسيط الممرر إليه. | |||
==أمثلة== | ==أمثلة== | ||
مثال على استخدام التابع <code>class_eval</code>: | مثال على استخدام التابع <code>class_eval</code>:<syntaxhighlight lang="ruby">class Thing | ||
<syntaxhighlight lang="ruby">class Thing | |||
end | end | ||
a = %q{def hello() "Hello there!" end} | a = %q{def hello() "Hello there!" end} | ||
Thing.module_eval(a) | Thing.module_eval(a) | ||
puts Thing.new.hello() | puts Thing.new.hello() | ||
Thing.module_eval("invalid code", "dummy", 123)</syntaxhighlight> | Thing.module_eval("invalid code", "dummy", 123)</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby">Hello there! | ||
dummy:123:in `module_eval': undefined local variable | |||
or method `code' for Thing:Class</syntaxhighlight> | |||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Module/ | *التابع <code>[[Ruby/Module/class exec|class_exec]]</code>: يقيم الكتلة المعطاة في سياق الصنف/الوحدة. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-class_eval قسم التابع class_eval في الصنف Module في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Module.html#method-i-class_eval قسم التابع class_eval في الصنف Module في توثيق روبي الرسمي.] |
مراجعة 22:01، 26 أكتوبر 2018
يُقبّم التابع 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
: يقيم الكتلة المعطاة في سياق الصنف/الوحدة.