Пакет io объявляет интерфейс io.Reader, который представляет сторону потока данных, предназначенную для чтения.
Стандартная библиотека Go содержит множество реализаций этого интерфейса, включая файлы, сетевые соединения, компрессоры, шифрователи и другие.
Интерфейс io.Reader имеет метод Read:
func (T) Read(b []byte) (n int, err error)
Read записывает данные в предоставленный срез байтов и возвращает количество записанных байтов и значение типа error. Он возвращает ошибку io.EOF, когда поток заканчивается.
Данный пример кода создает strings.Reader и считывает его вывод по 8 байтов за раз.
package main
import (
"fmt"
"io"
"strings"
)
func main() {
r := strings.NewReader("Hello, Reader!")
b := make([]byte, 8)
for {
n, err := r.Read(b)
fmt.Printf("n = %v err = %v b = %v\n", n, err, b)
fmt.Printf("b[:n] = %q\n", b[:n])
if err == io.EOF {
break
}
}
}
Вывод:
n = 8 err =
Читайте также:
- Основы языка Go: интерфейсы
- Основы языка Go: Stringers
- Основы языка Go: методы, получатели и указатели
Комментариев нет:
Отправить комментарий