Sobes.tech
Junior — Middle

V akom prípade dochádza k automatickému výberu predvolenej možnosti v konštrukcii select v programovacom jazyku?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa konštrukcia select používa na prácu s viacerými kanálmi súčasne. Automatický výber predvoleného variantu nastáva, ak v select je blok default a žiadny z kanálov nie je pripravený na operáciu (čítanie alebo zápis). V takom prípade sa vykonanie okamžite presunie do bloku default, bez blokovania gorutiny.

Príklad:

select {
case msg := <-ch1:
    fmt.Println("Prijaté z ch1:", msg)
case ch2 <- 42:
    fmt.Println("Odoslané do ch2")
default:
    fmt.Println("Žiadny kanál nie je pripravený, vykonáva sa default")
}

Ak chýba blok default, select bude čakať, kým jeden z kanálov nebude pripravený.