Middle+
Оператор select дар кадом тартиб аз чанд канал мехонад?
sobes.tech AI
Ҷавоб аз AI
Дар Go, оператори select тасодуфан як аз каналҳои тайёр (ready) интихоб мекунад, агар чандто бошанд. Агар ягон канал тайёр набошад, select мепечад (агар default набошад).
Тартиби хондан аз чанд канал доимӣ нест ва кафолат дода намешавад. Ин барои пешгирӣ аз блокшавӣ ва таъмин кардани тақсимоти одилона аст.
Масал:
select {
case msg1 := <-chan1:
fmt.Println("Аз chan1 гирифта шуд:", msg1)
case msg2 := <-chan2:
fmt.Println("Аз chan2 гирифта шуд:", msg2)
default:
fmt.Println("Ҳеҷ канали тайёр нест")
}
Агар ҳарду, chan1 ва chan2, тайёр бошанд, Go тасодуфан яке аз онҳоро интихоб мекунад.