Junior — Middle
Ce se întâmplă dacă încerci să închizi un canal care este deja închis?
sobes.tech AI
Răspuns de la AI
În Go, încercarea de a închide un canal deja închis va duce la o panică (panic) în timpul execuției programului. Acest lucru se datorează faptului că funcția close() este destinată să închidă un canal o singură dată, iar închiderea repetată este considerată o eroare.
Exemplu:
ch := make(chan int)
close(ch) // închidere corectă
close(ch) // va provoca panic: close of closed channel
Pentru a evita panic-ul, trebuie să garantăm că canalul este închis doar o dată, de exemplu, folosind logică suplimentară sau sincronizare.