Sobes.tech
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.