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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: <code>الصنفBinding </code> ‎ في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Binding تُغلِّف كائنات...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: <code>الصنفBinding </code> ‎ في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE:الصنف <code>Binding </code> ‎ في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Binding]]
[[تصنيف: Ruby Binding]]

مراجعة 12:55، 12 سبتمبر 2018

تُغلِّف كائنات الصنف Binding سياق التنفيذ (execution context) في مكان معين في الشيفرة البرمجية، وتحتفظ بذلك السياق لاستخدامه مستقبلًا. يُحتفَظ بالمتغيرات، والتوابع، وقيمة self، وربما كتلة المكرر (iterator block) وكل ما يمكن الوصول إليه في هذا السياق. يمكن إنشاء كائنات الصنف Binding باستخدام التابع Kernel.binding، واستدعاؤها بوساطة التابع Kernel.set_trace_func. يمكن تمرير كائنات الربط (binding objects) هذه كوسيط ثانٍ للتابع Kernel.eval لإنشاء بيئة للتقييم (evaluation). class Demo

 def initialize(n)
   @secret = n
 end
 def get_binding
   binding
 end

end

k1 = Demo.new(99) b1 = k1.get_binding k2 = Demo.new(-3) b2 = k2.get_binding

eval("@secret", b1) #=> 99 eval("@secret", b2) #=> -3 eval("@secret") #=> nil مصادر صفحة الصنف Binding في توثيق روبي الرسمي.