Junior — Middle
Kaip užbaigti darbą su kanalu programoje?
sobes.tech AI
Atsakymas iš AI
Go kalboje, kanalo darbą baigti naudojama funkcija close(). Uždarius kanalą, tai signalizuoja gavėjams, kad daugiau naujų reikšmių nebus siunčiama. Po kanalo uždarymo bandymas į jį siųsti sukels paniką, tačiau skaityti iš uždaryto kanalo yra įmanoma — jis grąžins nulines reikšmes ir false kaip antrą grąžinamąjį parametrą.
Pavyzdys:
ch := make(chan int)
ngo func() {
ch <- 42
close(ch) // Uždaryti kanalą po siuntimo
}()
for val := range ch {
fmt.Println(val) // Išves 42
}
Taigi, norint baigti darbą su kanalu, reikia iškviesti close(channel).