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

من موسوعة حسوب
< Ruby‏ | Module
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>module_exec‎</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude> تصنيف: Ruby ت...'
 
ط مراجعة وتدقيق.
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>module_exec‎</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>Module.module_exec‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Module]]
[[تصنيف: Ruby Module Class]]
يقيّم التابع <code>module_exec</code> الكتلة الممررة في سياق الصنف/الوحدة. التابع المعرف في الكتلة ستنتمي إلى المُُستقبِل (receiver). الوسائط المُمررة إلى التابع ستُمرّر كلها إلى الكتلة. يمكن استخدام هذا إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخة (instance variables).
يقيّم التابع <code>module_exec</code> الكتلة الممررة في سياق [[Ruby/modules and classes|الصنف/الوحدة]]. التابع المعرف في الكتلة سينتمي إلى المُُستقبِل (receiver). المعاملات المُمررة إلى التابع ستُمرّر كلها إلى الكتلة.  


الناتج:
يمكن استخدام هذا التابع إذا كانت الكتلة تحتاج إلى الوصول إلى متغيرات النسخة (instance variables).
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">module_exec(arg...) {|var...| block } → obj‎</syntaxhighlight>
<syntaxhighlight lang="ruby">module_exec(arg...) {|var...| block } → obj‎</syntaxhighlight>
==المعاملات==
==القيمة المعادة==
===<code>arg...‎</code>===
تعاد نتيجة تقييم الكتلة الممررة في سياق [[Ruby/modules and classes|الصنف/الوحدة]].
 
 
==القيمة المُعادة==


==أمثلة==
==أمثلة==
سطر 21: سطر 18:
   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/module_eval|module_eval]]</code>: يُقيّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة، إلا أنه عند إعطاء كتلة، لن يتأثر البحث عن الثوابت/ الأصناف. يمكن استخدام هذا لإضافة توابع لصنف ما. تعيد <code>module_eval</code> نتيجة تقييم وسائطها. يحدد الوسيطان الاختياريان filename و lineno نص رسائل الخطأ.
* التابع <code>[[Ruby/Module/module_eval|module_eval]]</code>: يُقيّم السلسلة النصية أو الكتلة المعطاة في سياق الوحدة.  
* التابع <code>[[Ruby/Module/module_function|module_function]]</code>: ينشئ  دوال وحدة (module functions) للتابع المعطى. يمكن استدعاء هذه الدوال مع الوحدة كمُستقبِلات، كما يمكن أن تصير متاحة كتوابع نسخة (instance methods) للأصناف التي تُمزج (mix) في الوحدة. دوال <code>Module</code> هي نسخ من الدالة الأصلية، وبالتالي يمكن تغييرها بشكل مستقل. توابع النسخة (instance-method) ستُجعل خاصة. إذا تم استدعاء  دون وسائط، ستصبح التوابع المعرفة لاحقاً دوال وحدة. تُحوّل الوسائط النصية إلى رموز.


==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-module_exec قسم التابع module_exec‎ في الصنف Module‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-module_exec قسم التابع module_exec‎ في الصنف Module‎ في توثيق روبي الرسمي.]

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

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

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

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

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

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

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

أمثلة

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

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

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

Hello there!

انظر أيضا

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

مصادر