الفرق بين المراجعتين ل"Ruby/Module/module eval"
اذهب إلى التنقل
اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>module_eval</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude> تصنيف: Ruby ت...') |
|||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Module]] | [[تصنيف: Ruby Module]] | ||
− | يُقيّم التابع <code>module_eval</code> السلسلة النصية أو الكتلة المعطاة في سياق الوحدة، إلا أنه عند إعطاء كتلة، | + | يُقيّم التابع <code>module_eval</code> السلسلة النصية أو الكتلة المعطاة في سياق الوحدة، إلا أنه عند إعطاء كتلة، البحث عن الثوابت/ الأصناف لن يتأثر . |
− | + | يمكن استخدام هذا التابع لإضافة توابع لصنف ما. | |
− | < | + | |
− | + | يعيد التابع <code>module_eval</code> نتيجة تقييم وسائطه. ويحدد الوسيطان الاختياريان <code>filename</code> و <code>lineno</code> نص رسائل الخطأ. | |
− | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">module_eval(string [, filename [, lineno]]) → obj | <syntaxhighlight lang="ruby">module_eval(string [, filename [, lineno]]) → obj | ||
سطر 14: | سطر 13: | ||
==المعاملات== | ==المعاملات== | ||
===<code>string</code>=== | ===<code>string</code>=== | ||
+ | السلسلة النصية المراد تقييمها. | ||
− | ===<code>filename</code> | + | ===<code>filename و</code><code>lineno</code>=== |
− | |||
− | |||
− | |||
+ | يحددان نص رسائل الخطأ. | ||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
+ | يعيد التابع <code>module_eval</code> نتيجة تقييم وسائطه. | ||
==أمثلة== | ==أمثلة== | ||
سطر 29: | سطر 28: | ||
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/module_exec|module_exec]]</code>: يقيّم الكتلة الممررة في سياق الصنف/الوحدة. | |
− | * التابع <code>[[Ruby/Module/module_exec|module_exec]]</code>: يقيّم الكتلة الممررة في سياق الصنف/الوحدة | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-module_eval قسم التابع module_eval في الصنف Module في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Module.html#method-i-module_eval قسم التابع module_eval في الصنف Module في توثيق روبي الرسمي.] |
مراجعة 01:45، 27 أكتوبر 2018
يُقيّم التابع module_eval
السلسلة النصية أو الكتلة المعطاة في سياق الوحدة، إلا أنه عند إعطاء كتلة، البحث عن الثوابت/ الأصناف لن يتأثر .
يمكن استخدام هذا التابع لإضافة توابع لصنف ما.
يعيد التابع module_eval
نتيجة تقييم وسائطه. ويحدد الوسيطان الاختياريان filename
و lineno
نص رسائل الخطأ.
البنية العامة
module_eval(string [, filename [, lineno]]) → obj
module_eval {|mod| block }→ obj
المعاملات
string
السلسلة النصية المراد تقييمها.
filename و
lineno
يحددان نص رسائل الخطأ.
القيمة المُعادة
يعيد التابع module_eval
نتيجة تقييم وسائطه.
أمثلة
مثال على استخدام التابع 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)
الناتج:
Hello there!
dummy:123:in `module_eval': undefined local variable
or method `code' for Thing:Class
انظر أيضا
- التابع
module_exec
: يقيّم الكتلة الممررة في سياق الصنف/الوحدة.