Junior — Middle
Jak można zakończyć odczyt danych z kanału w programowaniu?
sobes.tech AI
Odpowiedź od AI
W języku Go, aby zakończyć odczyt z kanału, zazwyczaj używa się zamknięcia kanału za pomocą funkcji close(). Gdy kanał jest zamknięty, próba odczytu z niego zwraca wartość zerową i false jako drugi parametr, co pozwala wykryć koniec danych.
Przykład:
ch := make(chan int)
go func() {
for i := 0; i < 5; i++ {
ch <- i
}
close(ch) // sygnalizujemy, że nie ma więcej danych
}()
for val := range ch {
fmt.Println(val) // odczytuje do momentu zamknięcia kanału
}
W tym przykładzie pętla for val := range ch automatycznie zakończy się, gdy kanał zostanie zamknięty i wszystkie dane zostaną odczytane.