Sobes.tech
Junior — Middle

Cum se determină dacă un flux de date sau un canal s-a încheiat în timpul citirii?

sobes.tech AI

Răspuns de la AI

În Go, la citirea dintr-un flux (de exemplu, din io.Reader), sfârșitul datelor sau închiderea canalului se determină prin eroarea returnată io.EOF. Aceasta este metoda standard de a înțelege că fluxul s-a încheiat.

Exemplu:

buf := make([]byte, 1024)
n, err := reader.Read(buf)
if err == io.EOF {
    // fluxul de date s-a încheiat
} else if err != nil {
    // tratarea altor erori
} else {
    // tratarea datelor citite
}

Astfel, verificarea pentru io.EOF permite determinarea faptului că fluxul sau canalul și-a încheiat activitatea în timpul citirii.