Junior — Middle
Que se passe-t-il si vous essayez de fermer un canal qui est déjà fermé?
sobes.tech IA
Réponse de l'IA
En Go, tenter de fermer un canal déjà fermé entraînera un panic lors de l'exécution du programme. Cela est dû au fait que la fonction close() est conçue pour fermer un canal une seule fois, et une fermeture répétée est considérée comme une erreur.
Exemple:
ch := make(chan int)
close(ch) // fermeture correcte
close(ch) // provoquera un panic : close of closed channel
Pour éviter le panic, il faut garantir que le canal ne soit fermé qu'une seule fois, par exemple en utilisant une logique supplémentaire ou une synchronisation.