Ответ 1
func (* Buffer) Reset
func (b *Buffer) Reset()
Reset сбрасывает буфер, поэтому он не имеет содержимого. b.Reset() - это то же самое, что и b.Truncate(0).
func (* Буфер) Усечение
func (b *Buffer) Truncate(n int)
Усечение отменяет все, кроме первых n непрочитанных байтов из буфера. Это паники, если n отрицательно или больше длины буфера.
buffer.Reset()