Sobes.tech
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.