Sobes.tech
Junior — Middle

Kuidas lõpetada töö kanaliga programmis?

sobes.tech AI

Vastus AI-lt

Go keeles kasutatakse close() funktsiooni kanali töö lõpetamiseks. Kanali sulgemine signaalib vastuvõtjatele, et rohkem uusi väärtusi ei saadeta. Pärast kanali sulgemist põhjustab selle saatmine panika, kuid kanali sulgudest lugemine on võimalik — see tagastab nullväärtuse ja false teise tagastatud parameetrina.

Näide:

ch := make(chan int)
ngo func() {
    ch <- 42
    close(ch) // Kanali sulgemine pärast saatmist
}()

for val := range ch {
    fmt.Println(val) // Väljasta 42
}

Seega, kanali töö lõpetamiseks tuleb kutsuda close(channel).