Sobes.tech
Junior — Middle

Kokiu atveju automatiškai pasirenkama numatytoji parinktis select konstrukcijoje programavimo kalboje?

sobes.tech AI

Atsakymas iš AI

Go kalboje, select konstrukcija naudojama dirbti su keliais kanalais vienu metu. Automatinis pasirinkimas pagal numatytąją parinktį įvyksta, jei select yra default blokas ir nė vienas iš kanalų nėra pasiruošęs operacijai (skaityti ar rašyti). Tokiu atveju, vykdymas iš karto pereina į default bloką, neblokuojant gorutinos.

Pavyzdys:

select {
case msg := <-ch1:
    fmt.Println("Gauta iš ch1:", msg)
case ch2 <- 42:
    fmt.Println("Išsiųsta į ch2")
default:
    fmt.Println("Nė vienas kanalas nėra pasiruošęs, vykdomas default")
}

Jei default blokas nėra, select lauks, kol vienas iš kanalų taps pasiruošęs.