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