Junior — Middle
Quel comportement est attendu si l'on tente de fermer un canal qui a déjà été fermé auparavant?
sobes.tech IA
Réponse de l'IA
En Go, tenter de fermer un canal déjà fermé entraîne un panic.
Un canal ne peut être fermé qu'une seule fois pour signaler qu'aucune valeur supplémentaire ne sera envoyée.
Si vous appelez close(ch) à nouveau pour le même canal, le programme se terminera brutalement avec une erreur.
Exemple :
ch := make(chan int)
close(ch) // correct
close(ch) // panic: close of closed channel
Il est donc important de s'assurer que le canal ne soit fermé qu'une seule fois.