الفرق بين المراجعتين لصفحة: «Ruby/BasicObject/instance exec»
< Ruby | BasicObject
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>instance_exec</code>في الصنف <code>BasicObject</code> في روبي}}</noinclude> | <noinclude>{{DISPLAYTITLE: التابع <code>instance_exec</code> في الصنف <code>BasicObject</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] |
المراجعة الحالية بتاريخ 08:02، 4 أكتوبر 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
: يقدِّر ناتج تنفيذ شيفرة مصدرية للغة روبي معطاة كسلسلة نصية أو ناتج كتلة برمجية (block) مُمرَّرة ضمن سياق كائن مُستقبِل (obj). - التابع
__send__
: يستدعي تابعًا محددًا مع تمرير وسائط إليه.