Junior — Middle
Was passiert, wenn man versucht, einen Kanal zu schließen, der bereits geschlossen ist?
sobes.tech KI
Antwort von AI
In Go führt der Versuch, einen bereits geschlossenen Kanal zu schließen, während der Programmausführung zu einem Panic. Dies liegt daran, dass die Funktion close() dafür vorgesehen ist, einen Kanal nur einmal zu schließen, und ein wiederholtes Schließen als Fehler gilt.
Beispiel:
ch := make(chan int)
close(ch) // korrekte Schließung
close(ch) // löst panic aus: close of closed channel
Um Panic zu vermeiden, muss sichergestellt werden, dass der Kanal nur einmal geschlossen wird, zum Beispiel durch zusätzliche Logik oder Synchronisation.