Префиксная запись в буфер в Golang
В Golang bytes.Buffer — это тип, предназначенный для эффективной конкатенации строк и манипулирования ими. Однако некоторые разработчики могут столкнуться с необходимостью записи в начало буфера, в отличие от встроенных вспомогательных методов (например, WriteString), которые добавляются только в буфер.
Запись в начало буфера
Хотя базовый buf (внутренний байтовый буфер) bytes.Buffer не экспортируется, его содержимым можно манипулировать косвенно. Вот как этого можно добиться:
buffer.WriteString("B")
s := buffer.String()
buffer.Reset()
buffer.WriteString("A" s)
Объединяя «A» и s, мы фактически записываем «A» в начало буфера, за которым следует исходное содержимое.
Пример
Следующий код демонстрирует этот процесс:
package main
import (
"bytes"
"fmt"
)
func main() {
var buffer bytes.Buffer
buffer.WriteString("B")
s := buffer.String()
buffer.Reset()
buffer.WriteString("A" s)
fmt.Println(buffer.String())
}
Выход:
AB
Эта стратегия обеспечивает обходной путь для записи в начало буфера в Golang, несмотря на ограничения стандартной библиотеки типа bytes.Buffer.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3