Sobes.tech
Junior — Middle

Jak określić, czy strumień danych lub kanał zakończył swoją pracę podczas odczytu?

sobes.tech AI

Odpowiedź od AI

W Go, podczas odczytu z strumienia (np. z io.Reader), koniec danych lub zamknięcie kanału jest określane przez zwracany błąd io.EOF. Jest to standardowy sposób zrozumienia, że strumień się zakończył.

Przykład:

buf := make([]byte, 1024)
n, err := reader.Read(buf)
if err == io.EOF {
    // strumień danych się zakończył
} else if err != nil {
    // obsługa innych błędów
} else {
    // obsługa odczytanych danych
}

W związku z tym, sprawdzanie io.EOF pozwala określić, że strumień lub kanał zakończył swoją pracę podczas odczytu.