Junior — Middle
Welches Verhalten wird erwartet, wenn man versucht, einen Kanal zu schließen, der bereits zuvor geschlossen wurde?
sobes.tech KI
Antwort von AI
In Go führt der Versuch, einen bereits geschlossenen Kanal zu schließen, zu einem Panic.
Ein Kanal kann nur einmal geschlossen werden, um anzuzeigen, dass keine Werte mehr gesendet werden.
Wenn close(ch) für denselben Kanal wiederholt aufgerufen wird, beendet sich das Programm mit einem Fehler.
Beispiel:
ch := make(chan int)
close(ch) // korrekt
close(ch) // panic: close of closed channel
Daher ist es wichtig, sicherzustellen, dass der Kanal nur einmal geschlossen wird.