عبارة Select
Select Statement
مفهوم
~20 دقيقة
عبارة Select — Select Statement
select هي مثل switch لكن للقنوات. تنتظر عدة عمليات قنوات وتُنفّذ أول واحدة تكون جاهزة. هذا يجعلك تتعامل مع عدة مصادر بيانات متزامنة بأناقة.
select الأساسية
main.go
Output:
المهل الزمنية — Timeouts
من أهم استخدامات select — تحديد وقت أقصى للانتظار:
main.go
Output:
عمليات غير مُعيقة — Non-blocking Operations
أضف default لجعل select لا تنتظر أبداً:
main.go
Output:
نمط Fan-In — دمج قنوات متعددة
Fan-in يجمع بيانات من عدة مصادر في قناة واحدة:
main.go
Output:
نمط المؤقت الدوري — Ticker Pattern
main.go
Output:
نمط done channel — الإلغاء
main.go
Output:
نصيحة:
close(done)أفضل من إرسال قيم متعددة لأنه يُنبّه كل المستمعين دفعة واحدة.
تحدي — Challenge
أنشئ قناتين وأرسل لواحدة بعد 50ms وأخرى بعد 200ms واستخدم select لاختيار الأسرع