В Go 1.26 добавили очень удобный метод:
Buffer.Peek(n) в пакете bytes.Что делает:
- возвращает следующие N байт
- не сдвигает указатель чтения
- то есть можно “подсмотреть”, что впереди, и не портить поток
Это идеальная штука для:
- парсеров протоколов
- stream processing
- проверок заголовков/сигнатур
- peek-before-read логики
Важный нюанс:
Peek() возвращает срез, который указывает прямо на внутренний буфер.То есть:
- он валиден, пока буфер не изменился
- если ты поменяешь срез - поменяешь буфер (осторожно!)
Мини-юзкейс: сначала peek, потом решаешь - читать дальше или нет.
