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.