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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code> instance_exec</code>في الصنف <code>BasicObject</code> في روبي}}</noinclude> تصنيف: Ruby تصن...'
 
لا ملخص تعديل
سطر 8: سطر 8:
  </syntaxhighlight>
  </syntaxhighlight>
==المعاملات==
==المعاملات==
<code>arg</code>
 
=== <code>arg</code> ===
الوسائط المراد تمريرها كمعاملات إلى الكتلة <code>block</code>.
الوسائط المراد تمريرها كمعاملات إلى الكتلة <code>block</code>.
==القيم المعادة==
==القيم المعادة==
يعاد كائن يحوي ناتج تنفيذ الكتلة البرمجية <code>block</code>[<code>a</code>].
يعاد كائن يحوي ناتج تنفيذ الكتلة البرمجية <code>block</code>.
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>instance_exec</code>:
مثال على استخدام التابع <code>instance_exec</code>:
سطر 24: سطر 25:
==انظر أيضًا==
==انظر أيضًا==
* التابع [[Ruby/BasicObject/instance_eval | <code>instance_eval</code>]]: يقدِّر‎ ناتج تنفيذ شيفرة مصدرية للغة روبي معطاة كسلسلة نصية أو ناتج كتلة برمجية (<code>bolck</code>) مُمرَّرة ضمن سياق كائن مُستقبِل (<code>obj</code>).
* التابع [[Ruby/BasicObject/instance_eval | <code>instance_eval</code>]]: يقدِّر‎ ناتج تنفيذ شيفرة مصدرية للغة روبي معطاة كسلسلة نصية أو ناتج كتلة برمجية (<code>bolck</code>) مُمرَّرة ضمن سياق كائن مُستقبِل (<code>obj</code>).
* التابع ‎<code>__send__</code>‎‎‎: يستدعي تابعًا محددًا مع تمرير وسائط إليه.
* التابع ‎[[Ruby/BasicObject/send|<code>__send__</code>‎‎‎]]: يستدعي تابعًا محددًا مع تمرير وسائط إليه.
==مصادر==
==مصادر==
* قسم التابع instance_exec في الصنف BasicObject في توثيق روبي الرسمي.
* [http://ruby-doc.org/core-2.5.1/BasicObject.html#method-i-instance_exec قسم التابع instance_exec في الصنف BasicObject في توثيق روبي الرسمي.]
[a]هذه أيضًا.
+abdallatif.ey@gmail.com
_تم التعيين إلى Abd Allatif_

مراجعة 18:50، 11 سبتمبر 2018

ينفِّذ التابع instance_exec الكتلة البرمجية المُمرَّرة ضمن سياق الكائن المستقبل (obj). لتعيين السياق، يُضبَط المتغير self إلى obj أثناء تنفيذ الشيفرة، مما يعطي الشيفرة إمكانية الوصول لمتغيرات النسخة obj.

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

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

المعاملات

arg

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

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

يعاد كائن يحوي ناتج تنفيذ الكتلة البرمجية block.

أمثلة

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

 class KlassWithSecret
 def initialize
   @secret = 99
 end
end
k = KlassWithSecret.new
k.instance_exec(5) {|x| @secret+x }   #=> 104

انظر أيضًا

  • التابع instance_eval: يقدِّر‎ ناتج تنفيذ شيفرة مصدرية للغة روبي معطاة كسلسلة نصية أو ناتج كتلة برمجية (bolck) مُمرَّرة ضمن سياق كائن مُستقبِل (obj).
  • التابع ‎__send__‎‎‎: يستدعي تابعًا محددًا مع تمرير وسائط إليه.

مصادر