التابع []‎ الخاص بالصنف Thread في روبي

من موسوعة حسوب
< Ruby‏ | Thread
مراجعة 23:37، 5 نوفمبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>[]‎</code> الخاص بالصنف <code>Thread</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف:...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

مرجع الخصائص (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) - يعيّن أو ينشئ قيمة متغير محلي الليف، باستخدام إما رمز أو سلسلة نصية.

مصادر