Junior — Middle
Aké správanie sa očakáva, ak sa pokúsite zatvoriť kanál, ktorý bol už skôr zatvorený?
sobes.tech AI
Odpoveď od AI
V Go, pokus o zatvoreni uz uzatvoren kanal vedie k panike.
Kanal je možné zatvoriť iba raz, aby sa signalizovalo, že už nebudú odoslané žiadne hodnoty.
Ak zavoláte close(ch) opakovane pre ten istý kanál, program sa neočakávane ukončí s chybou.
Príklad:
ch := make(chan int)
close(ch) // správne
close(ch) // panic: close of closed channel
Preto je dôležité kontrolovať, že kanál je zatvorený iba raz.