التابع 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: يجلب بياناتٍ من الطابور الذي استُدعي معه.