Junior — Middle
Cosa succede se si cerca di chiudere un canale già chiuso?
sobes.tech AI
Risposta dell'AI
In Go, tentare di chiudere un canale già chiuso provocherà un panic durante l'esecuzione del programma. Ciò è dovuto al fatto che la funzione close() è progettata per chiudere un canale una sola volta, e la chiusura ripetuta è considerata un errore.
Esempio:
ch := make(chan int)
close(ch) // chiusura corretta
close(ch) // provocherà panic: close of closed channel
Per evitare il panic, bisogna garantire che il canale venga chiuso solo una volta, ad esempio con logica aggiuntiva o sincronizzazione.