التابع Queue.close
في روبي
يغلق التابع close
الطابور الذي استُدعي معه. لا يمكن إعادة فتح طابور الانتظار المُغلق.
بعد اكتمال استدعاء طلب الإغلاق، سيكون التالي صحيحًا:
- سيعيد التابع
?closed
القيمةtrue
. - سيُتجاهل التابع
close
إن استدعي مرة أخرى مع نفس الطابور. - استدعاء التابع
enq
أو التابعpush
أو المعامل>>
سيرمي استثناءً. - عندما يُعيد التابع
?empty
القيمةfalse
، سيُعيد استدعاء التابعdeq
أوpop
أوshift
كائنًا من طابور الانتظار كالمعتاد.
الاستثناء ClosedQueueError
موروثٌ من الصنف StopIteration، لذلك يمكنك كسر كتلة حلقة التكرار (loop block).
البنية العامة
close
أمثلة
مثالٌ عن استخدام التابع close
:
q = Queue.new
Thread.new{
while e = q.deq # wait for nil to break loop
# ...
end
}
q.close
انظر أيضًا
- التابع
length
: يعيد طول الطابور الذي استُدعي معه. - التابع
clear
: يحذف كل الكائنات من الطابور الذي استُدعي معه. - التابع
pop
: يجلب بياناتٍ من الطابور الذي استُدعي معه.