Junior — Middle
Kas nutiks, jei bandysite uždaryti jau uždarytą kanalą?
sobes.tech AI
Atsakymas iš AI
Go kalboje bandymas uždaryti jau uždarytą kanalą programos vykdymo metu sukels panic. Tai yra todėl, kad close() funkcija skirta uždaryti kanalą tik vieną kartą, ir pakartotinai uždaryti laikoma klaida.
Pavyzdys:
ch := make(chan int)
close(ch) // teisingas uždarymas
close(ch) // sukels panic: close of closed channel
Norint išvengti panikos, reikia užtikrinti, kad kanalas būtų uždaromas tik vieną kartą, pavyzdžiui, naudojant papildinę logiką ar sinchronizaciją.