الفرق بين المراجعتين لصفحة: «Ruby/Module/class eval»

من موسوعة حسوب
< Ruby‏ | Module
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>class_eval‎</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>Module.class_eval‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Module]]
[[تصنيف: Ruby Module Class]]
يُقبّم التابع <code>class_eval</code> السلسلة النصية أو الكتلة المعطاة في سياق الوحدة التي استُدعي معها، إلا أنه عند إعطاء كتلة، البحث عن متغيرات االأصناف/الثوابت لن يتأثر. يمكن استخدامه لإضافة توابع إلى صنف ما.
يُقيِّم التابع <code>class_eval</code> السلسلة النصية أو الكتلة المعطاة في سياق الوحدة التي استُدعي معها، إلا أنه عند إعطاء كتلة، فلن تتأثر عملية البحث عن متغيرات الأصناف/الثوابت. يمكن استخدامه لإضافة توابع إلى صنف ما.


يعيد <code>module_eval</code> نتيجة تقييم الوسيط الممرر إليه. يحدد الوسيطان الاختياريان <code>filename</code> و <code>lineno</code> نص رسائل الخطأ.
يعيد التابع <code>module_eval</code> نتيجة تقييم الوسيط الممرر إليه.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">class_eval(string [, filename [, lineno]])  → obj
<syntaxhighlight lang="ruby">class_eval(string [, filename [, lineno]])  → obj
سطر 13: سطر 13:
السلسلة النصية المراد تقييمها.
السلسلة النصية المراد تقييمها.


===<code>filename‎ و</code><code>lineno‎</code>===
===<code>filename‎</code>===
يحدد الوسيطان الاختياريان <code>filename</code> و <code>lineno</code> نص رسائل الخطأ
يحدد هذا المعامل والمعامل <code>lineno</code> نص رسائل الخطأ.
==القيمة المُعادة==
 
يعيد <code>module_eval</code> نتيجة تقييم الوسيط الممرر إليه.
=== <code>lineno‎</code> ===
يحدد هذا المعامل والمعامل <code>filename</code> نص رسائل الخطأ.
 
==القيمة المعادة==
تعاد نتيجة تقييم السلسلة النصية <code>string</code> أو الكتلة <code>block</code> المعطاة في سياق الوحدة المحدَّدة.


==أمثلة==
==أمثلة==
سطر 24: سطر 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>الناتج:<syntaxhighlight lang="ruby">Hello there!
Thing.module_eval("invalid code", "dummy", 123)‎</syntaxhighlight>ناتج تنفيذ هذا المثال هو:<syntaxhighlight lang="text">Hello there!
dummy:123:in `module_eval': undefined local variable
dummy:123:in `module_eval': undefined local variable
     or method `code' for Thing:Class‎</syntaxhighlight>
     or method `code' for Thing:Class‎</syntaxhighlight>
سطر 30: سطر 34:
*التابع <code>[[Ruby/Module/class exec|class_exec]]</code>: يقيم  الكتلة المعطاة في سياق الصنف/الوحدة.
*التابع <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‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 08:31، 18 نوفمبر 2018

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

يعيد التابع module_eval نتيجة تقييم الوسيط الممرر إليه.

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

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

المعاملات

string‎

السلسلة النصية المراد تقييمها.

filename‎

يحدد هذا المعامل والمعامل lineno نص رسائل الخطأ.

lineno‎

يحدد هذا المعامل والمعامل filename نص رسائل الخطأ.

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

تعاد نتيجة تقييم السلسلة النصية string أو الكتلة block المعطاة في سياق الوحدة المحدَّدة.

أمثلة

مثال على استخدام التابع 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: يقيم الكتلة المعطاة في سياق الصنف/الوحدة.

مصادر