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).