Sobes.tech
Junior — Middle

Как да определим дали потокът от данни или каналът е приключил по време на четенето?

sobes.tech AI

Отговор от AI

В Go, при четене от поток (например, от io.Reader), крайът на данните или затварянето на канала се определя по връщаната грешка io.EOF. Това е стандартният начин да се разбере, че потокът е приключил.

Пример:

buf := make([]byte, 1024)
n, err := reader.Read(buf)
if err == io.EOF {
    // потокът е приключил
} else if err != nil {
    // обработка на други грешки
} else {
    // обработка на прочетените данни
}

Така проверката за io.EOF позволява да се определи, че потокът или каналът са приключили работата си по време на четенето.