التابع instance_exec في الصنف BasicObject في روبي

من موسوعة حسوب
مراجعة 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__‎‎‎: يستدعي تابعًا محددًا مع تمرير وسائط إليه.

مصادر