التابع []
الخاص بالصنف Thread
في روبي
مرجع الخصائص (Attribute Reference) - يُعيد قيمة متغير الليف المحلي fiber-local variable (الليف الأصلي للمهمة فرعية الحالية إن لم يكن موجودًا داخل ليف Fiber
) ، باستخدام إما رمز أو اسم سلسلة نصية. إن لم يكن المتغير المعطى (انظر فقرة البنية العامة) غير موجود، فستعاد nil
.
هذا سوف ينتج:
المعاملات #[]
و #[]=
ليسا محليا المهمة الفرعية، ولكنها محليا الليف. هذا الارتباك لم يظهر إلا بعد روبي 1.9 حيث ظهرت الليف. اختارت روبي 1.9 أن تكون التوابع محلية الليف لتوفير الاصطلاح التالي للنطاق الديناميكي (dynamic scope).
قد لا يعمل هذا الاصطلاح كنطاق ديناميكي إن كانت التوابع محلية المهمة الفرعية، وقامت كتلة معطاة بتحويل (switches) الليف.
للمتغيرات محلية المهمة الفرعية، يرجى الاطلاع على thread_variable_get
و thread_variable_set
.
البنية العامة
thr[sym]→ obj or nil
القيمة المُعادة
أمثلة
مثال على استخدام التابع []
:
[
Thread.new { Thread.current["name"] = "A" },
Thread.new { Thread.current[:name] = "B" },
Thread.new { Thread.current["name"] = "C" }
].each do |th|
th.join
puts "#{th.inspect}: #{th[:name]}"
end
انظر أيضا
- التابع
stop
: يوقف التابعstop
تنفيذ المهمة الفرعية الحالية، ويضعها في حالة "نوم" (sleep)، ويُجدوٍل (schedules) تنفيذ مهمة فرعية أخرى. - التابع
[]=
: معامل تعيين الخاصيات (Attribute Assignment) - يعيّن أو ينشئ قيمة متغير محلي الليف، باستخدام إما رمز أو سلسلة نصية.
مصادر
- قسم التابع [ في الصنف Thread في توثيق روبي الرسمي.]