Sobes.tech
Junior — Middle

Ar yra galimybė nustatyti numatytąją reikšmę pasirinktoms parametrų SELECT sakinyje?

sobes.tech AI

Atsakymas iš AI

Go kalboje operatorius select naudojamas dirbti su keliais kanalais ir tiesiogiai nepalaiko numatytųjų reikšmių nustatymo parametrams, kaip tai daroma funkcijose.

Tačiau, select viduje galima naudoti default bloką, kuris vykdomas, jei nė vienas iš kanalų nėra pasiruošęs operacijai. Tai galima laikyti kaip numatytąjį elgesį, kai nėra prieinamų duomenų.

Pavyzdys:

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

Taigi, default select viduje yra būdas nustatyti numatytąją veiksmą, jei kiti kanalai nėra pasiruošę.