Junior — Middle
Kuriame kodo taške reikia uždaryti kanalą?
sobes.tech AI
Atsakymas iš AI
Go kalne reikia uždaryti ten, kur jis sukurtas ir kur daugiau neplanuojama siųsti duomenų. Paprastai tai daro siuntėjas, kad signalizuotų gavėjams, jog daugiau duomenų nebus.
Svarbu:
- Gavėjai gali patikrinti uždarymą skaitydami.
- Uždaryti kanalą turi tik siuntėjas, kad išvengtų panikos.
Pavyzdys:
ch := make(chan int)
func() {
defer close(ch) // uždarome kanalą po visų duomenų siuntimo
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // gauname duomenis, kol kanalas neužsidarys
}