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

من موسوعة حسوب
< Ruby‏ | Module
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>class_exec‎</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude> تصنيف: Ruby تص...'
 
لا ملخص تعديل
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Module]]
[[تصنيف: Ruby Module]]
يقيم التابع <code>class_exec</code> الكتلة المعطاة في سياق الصنف/الوحدة. التابع المعرف في الكتلة ستنتمي إلى المستقبِل (receiver). ستُمرر كل الوسائط المعطاة إلى التابع إلى الكتلة. يمكن استخدام هذا إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخ (instance variables).
يقيم التابع <code>class_exec</code> الكتلة المعطاة في سياق الصنف/الوحدة التي استُدعي معها. التابع المعرف في الكتلة سينتمي إلى المستقبِل (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>===


 
الوسائط الممررة إلى الكتلة
==القيمة المُعادة==
==القيمة المُعادة==
يعيد التابع <code>class_exec</code> ناتج تقييم الكتلة المعطاة في سياق الصنف/الوحدة التي استُدعي معها.


==أمثلة==
==أمثلة==
سطر 21: سطر 22:
   def hello() "Hello there!" end
   def hello() "Hello there!" end
}
}
puts Thing.new.hello()‎</syntaxhighlight>
puts Thing.new.hello()‎</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby">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‎ في توثيق روبي الرسمي.]

مراجعة 22:04، 26 أكتوبر 2018

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

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

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

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

المعاملات

arg...‎

الوسائط الممررة إلى الكتلة

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

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

أمثلة

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

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

الناتج:

Hello there!

انظر أيضا

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

مصادر