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 позволява да се определи, че потокът или каналът са приключили работата си по време на четенето.