Junior — Middle
Wie kann man das Lesen von Daten aus einem Kanal in der Programmierung beenden?
sobes.tech KI
Antwort von AI
In Go wird zum Beenden des Lesens aus einem Kanal in der Regel der Kanal mit der Funktion close() geschlossen. Wenn der Kanal geschlossen ist, gibt der Versuch, daraus zu lesen, einen Nullwert und false im zweiten Rückgabewert zurück, was das Ende der Daten signalisiert.
Beispiel:
ch := make(chan int)
go func() {
for i := 0; i < 5; i++ {
ch <- i
}
close(ch) // signalisiert, dass keine Daten mehr vorhanden sind
}()
for val := range ch {
fmt.Println(val) // liest bis zum Schließen des Kanals
}
In diesem Beispiel endet die Schleife for val := range ch automatisch, wenn der Kanal geschlossen ist und alle Daten gelesen wurden.