Junior — Middle
Šta će se desiti ako pokušate da zatvorite kanal koji je već zatvoren?
sobes.tech АИ
Одговор од АИ
U jeziku Go, pokušaj zatvaranja već zatvorenog kanala tokom izvršavanja programa će dovesti do panike (panic). To je zbog toga što je funkcija close() namenjena za zatvaranje kanala samo jednom, a ponovnim zatvaranjem smatra se greška.
Primer:
ch := make(chan int)
close(ch) // ispravno zatvaranje
close(ch) // izazva panic: close of closed channel
Da biste izbegli paniku, morate osigurati da se kanal zatvara samo jednom, na primer, pomoću dodatne logike ili sinhronizacije.