Junior — Middle
An welcher Stelle im Code muss man den Kanal schließen?
sobes.tech KI
Antwort von AI
In Go sollte ein Kanal an der Stelle geschlossen werden, an der er erstellt wurde und wo keine weiteren Daten mehr gesendet werden sollen. Normalerweise macht das der Sender, um den Empfängern zu signalisieren, dass keine Daten mehr kommen.
Wichtig:
- Empfänger können beim Lesen das Schließen des Kanals überprüfen.
- Der Kanal sollte nur vom Sender geschlossen werden, um Panik zu vermeiden.
Beispiel:
ch := make(chan int)
func() {
defer close(ch) // Kanal nach dem Senden aller Daten schließen
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // Daten empfangen, bis der Kanal geschlossen wird
}