Junior — Middle
Kokio elgesio tikimasi, jei bandysite uždaryti jau anksčiau uždarytą kanalą?
sobes.tech AI
Atsakymas iš AI
Go kalboje, bandymas uždaryti jau uždarytą kanalą sukelia paniką.
Kanalą galima uždaryti tik kartą, kad būtų signalizuota, jog daugiau reikšmių nebus siunčiama.
Jei pakartotinai iškviesite close(ch) tą patį kanalą, programa netikėtai baigsis su klaida.
Pavyzdys:
ch := make(chan int)
close(ch) // teisinga
close(ch) // panic: close of closed channel
Todėl svarbu kontroliuoti, kad kanalas būtų uždaromas tik vieną kartą.