Junior — Middle
Milyen esetben történik automatikusan az alapértelmezett lehetőség kiválasztása a select szerkezetben egy programozási nyelvben?
sobes.tech MI
Válasz az MI-től
A Go nyelvben a select szerkezetet több csatornával való egyidejű munkára használják. Az automatikus választás az alapértelmezett lehetőségre akkor történik, ha a select-ben van egy default blokk, és egyik csatorna sem kész az műveletre (olvasás vagy írás). Ebben az esetben a végrehajtás azonnal a default blokkra ugrik, anélkül, hogy blokkolná a goroutine-t.
Példa:
select {
case msg := <-ch1:
fmt.Println("Megkapva ch1-től:", msg)
case ch2 <- 42:
fmt.Println("Elküldve ch2-be")
default:
fmt.Println("Egyik csatorna sem kész, default fut")
}
Ha hiányzik a default blokk, a select várni fog, amíg valamelyik csatorna kész nem lesz.