1. Нужно создать интерфейс type SpotReader interface {Read(p []byte) (n int, err error)} Нужно создать класс SpotReader, который удовлетворяет интерфейсу SpotReader. В классе SpotReader нужно реализовать метод Read(p []byte) (n int, err error) следующим образом: Читает первый 1 ГБ как есть, затем читает блоками по 64кб с пропуском 3-х блоков из четырех. Чтение в буфер не более определенного размера. Все размерности нужно задавать в переменных, чтобы их легко было переопределить. 2. Сделать аналогично для Write. 3. Нужны тесты для созданных методов и нужен Makefile. 4. В результате должен будет корректно отрабатывать следующий код: n, err = io.Copy(out, c.Reader(io.TeeReader(SpotReader(in), c))) n, err = io.Copy(SpotReader(out), c.Reader(io.TeeReader(in, c))) Примеры использования интерфейсов и пример реализации: pkg.go.dev/io#MultiReader pkg.go.dev/io#TeeReader

Похожие

Посмотрите другие вакансии

Вот самые похожие вакансии

Новый поиск