Junior — Middle
Come determinare se un flusso di dati o un canale ha terminato il suo lavoro durante la lettura?
sobes.tech AI
Risposta dell'AI
In Go, durante la lettura da un flusso (ad esempio, da io.Reader), la fine dei dati o la chiusura del canale viene determinata dall'errore restituito io.EOF. Questo è il metodo standard per capire che il flusso si è concluso.
Esempio:
buf := make([]byte, 1024)
n, err := reader.Read(buf)
if err == io.EOF {
// il flusso di dati è terminato
} else if err != nil {
// gestione di altri errori
} else {
// gestione dei dati letti
}
Pertanto, il controllo su io.EOF permette di determinare che il flusso o il canale ha terminato il proprio lavoro durante la lettura.