Sobes.tech
Junior — Middle

Como determinar se um fluxo de dados ou canal terminou durante a leitura?

sobes.tech IA

Resposta da IA

No Go, ao ler de um fluxo (por exemplo, de io.Reader), o fim dos dados ou o encerramento do canal é determinado pelo erro devolvido io.EOF. Esta é a forma padrão de entender que o fluxo terminou.

Exemplo:

buf := make([]byte, 1024)
n, err := reader.Read(buf)
if err == io.EOF {
    // fluxo de dados terminado
} else if err != nil {
    // tratamento de outros erros
} else {
    // tratamento dos dados lidos
}

Assim, a verificação de io.EOF permite determinar que o fluxo ou canal terminou seu trabalho durante a leitura.