Sobes.tech
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
}