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 автоматично ще приключи, когато каналът бъде затворен и всички данни бъдат прочетени.