الفرق بين المراجعتين لصفحة: «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
: يقيّم الكتلة الممررة في سياق الصنف/الوحدة.