Sobes.tech
Junior — Middle

Как може да се завърши четенето на данни от канал в програмирането?

sobes.tech AI

Отговор от AI

В Go, за да завършите четенето от канал, обикновено затваряте канала с функцията close(). Когато каналът е затворен, опитът за четене от него връща нулева стойност и false като втори резултат, което позволява да се определи краят на данните.

Пример:

ch := make(chan int)
go func() {
    for i := 0; i < 5; i++ {
        ch <- i
    }
    close(ch) // сигнализираме, че няма повече данни
}()

for val := range ch {
    fmt.Println(val) // чете до затварянето на канала
}

В този пример цикълът for val := range ch автоматично ще приключи, когато каналът бъде затворен и всички данни бъдат прочетени.