الفرق بين المراجعتين ل"Ruby/Module/class exec"

من موسوعة حسوب
< Ruby‏ | Module
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>class_exec‎</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude> تصنيف: Ruby تص...')
 
ط (مراجعة وتدقيق.)
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>class_exec‎</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: التابع <code>Module.class_exec‎</code> في روبي}}</noinclude>
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Module]]
+
[[تصنيف: Ruby Module Class]]
يقيم التابع <code>class_exec</code> الكتلة المعطاة في سياق الصنف/الوحدة. التابع المعرف في الكتلة ستنتمي إلى المستقبِل (receiver). ستُمرر كل الوسائط المعطاة إلى التابع إلى الكتلة. يمكن استخدام هذا إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخ (instance variables).
+
يقيِّم التابع <code>class_exec</code> الكتلة المعطاة في سياق [[Ruby/modules and classes|الصنف/الوحدة]] التي استُدعي معها. التابع المعرف في الكتلة سينتمي إلى المستقبِل (receiver). وستُمرر كل الوسائط المعطاة للتابع إلى الكتلة.  
  
الناتج:
+
يمكن استخدام هذا التابع إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخ (instance variables).
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">class_exec(arg...) {|var...| block }  → obj‎</syntaxhighlight>
 
<syntaxhighlight lang="ruby">class_exec(arg...) {|var...| block }  → obj‎</syntaxhighlight>
سطر 11: سطر 11:
 
===<code>arg...‎</code>===
 
===<code>arg...‎</code>===
  
 
+
الوسائط المراد تمريرها إلى الكتلة.
==القيمة المُعادة==
+
==القيمة المعادة==
 +
يعاد ناتج تقييم الكتلة المعطاة في سياق [[Ruby/modules and classes|الصنف/الوحدة]] المعطاة.
  
 
==أمثلة==
 
==أمثلة==
سطر 21: سطر 22:
 
   def hello() "Hello there!" end
 
   def hello() "Hello there!" end
 
}
 
}
puts Thing.new.hello()‎</syntaxhighlight>
+
puts Thing.new.hello()‎</syntaxhighlight>ناتج تنفيذ هذا المثال هو:<syntaxhighlight lang="text">Hello there!
 +
</syntaxhighlight>
 +
 
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/Module/class_eval|class_eval]]</code>: يُقبّم  السلسلة النصية أو الكتلة المعطاة في سياق الوحدة ، إلا أنه عند إعطاء كتلة، لن يتأثر البحث عن متغيراالأصناف والثوابت. يمكن استخدام هذا لإضافة توابع إلى صنف. يعيد <code>module_eval</code> نتيجة تقييم الوسيط الممرر إليه. يحدد الوسيطان الاختياريات filename و lineno نص رسائل الخطأ.
+
* التابع <code>[[Ruby/Module/class_eval|class_eval]]</code>: يُقيِّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة.
* التابع <code>[[Ruby/Module/class_variable_defined-3F|class_variable_defined?]]</code>: يعيد  القيمة <code>true</code> إن كان متغير الصنف (class variable) المعطى  مٌعرّفا في obj. تُحوّل الوسائط <code>String</code> إلى رموز.
 
  
 
==مصادر==
 
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-class_exec قسم التابع class_exec‎ في الصنف Module‎ في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-class_exec قسم التابع class_exec‎ في الصنف Module‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 10:53، 19 نوفمبر 2018

يقيِّم التابع class_exec الكتلة المعطاة في سياق الصنف/الوحدة التي استُدعي معها. التابع المعرف في الكتلة سينتمي إلى المستقبِل (receiver). وستُمرر كل الوسائط المعطاة للتابع إلى الكتلة.

يمكن استخدام هذا التابع إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخ (instance variables).

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

class_exec(arg...) {|var...| block }   obj

المعاملات

arg...‎

الوسائط المراد تمريرها إلى الكتلة.

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

يعاد ناتج تقييم الكتلة المعطاة في سياق الصنف/الوحدة المعطاة.

أمثلة

مثال على استخدام التابع class_exec‎:

class Thing
end
Thing.class_exec{
  def hello() "Hello there!" end
}
puts Thing.new.hello()

ناتج تنفيذ هذا المثال هو:

Hello there!

انظر أيضا

  • التابع class_eval: يُقيِّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة.

مصادر