الفرق بين المراجعتين لصفحة: «Ruby/BasicObject/instance exec»
< Ruby | BasicObject
أنشأ الصفحة ب'<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>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 في توثيق روبي الرسمي.] | ||
مراجعة 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__
: يستدعي تابعًا محددًا مع تمرير وسائط إليه.