Junior — Middle
Como pode terminar a leitura de dados de um canal na programação?
sobes.tech IA
Resposta da IA
No Go, para terminar a leitura de um canal, geralmente usa-se o encerramento do canal com a função close(). Quando o canal está fechado, tentar lê-lo retorna um valor zero e false na segunda variável, o que permite detectar o fim dos dados.
Exemplo:
ch := make(chan int)
go func() {
for i := 0; i < 5; i++ {
ch <- i
}
close(ch) // sinaliza que não há mais dados
}()
for val := range ch {
fmt.Println(val) // lê até o canal ser fechado
}
Neste exemplo, o ciclo for val := range ch terminará automaticamente quando o canal for fechado e todos os dados tiverem sido lidos.