Junior — Middle
Kus koodis on vaja sulgeda kanal?
sobes.tech AI
Vastus AI-lt
Go kanalit tuleb sulgeda seal, kus see on loodud ja kus enam ei plaanita andmeid saata. Tavaliselt teeb seda saatja, et märku anda vastuvõtjatele, et andmeid enam ei tule.
Oluline:
- Vastuvõtjad saavad lugedes kontrollida kanali sulgemist.
- Kanalit tohib sulgeda ainult saatja, et vältida panku.
Näide:
ch := make(chan int)
func() {
defer close(ch) // sulgeme kanali pärast kõigi andmete saatmist
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // saame andmeid kuni kanal on suletud
}