io.Reader и io.Writer в Go. Композиция.

Ответ

Интерфейсы для чтения и записи байтов: Read(p []byte) (n int, err error), Write(p []byte) (n int, err error). Много типов их реализуют: файлы, сеть, буферы, сжатие. Композиция: io.Copy(dst, src), io.MultiWriter, io.TeeReader, bufio.Reader оборачивает Reader. В Go редко нужны большие иерархии - достаточно маленьких интерфейсов.

n, err := io.Copy(w, r)
buf := bufio.NewReader(r)
line, _ := buf.ReadString('\n')
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.