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