Gravações de buffer de prefixo em Golang
Em Golang, o bytes.Buffer é um tipo projetado para concatenação e manipulação eficiente de strings. No entanto, alguns desenvolvedores podem encontrar a necessidade de escrever no início de um buffer, ao contrário dos métodos auxiliares integrados (por exemplo, WriteString) que apenas são anexados ao buffer.
Write to Beginning of Buffer
Embora o buf subjacente (buffer de bytes interno) de bytes.Buffer não seja exportado, é possível manipular seu conteúdo indiretamente. Veja como você pode conseguir isso:
buffer.WriteString("B")
s := buffer.String()
buffer.Reset()
buffer.WriteString("A" s)
Ao concatenar "A" e s, efetivamente escrevemos "A" no início do buffer, seguido pelo conteúdo original.
Exemplo
O código a seguir demonstra o processo:
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())
}
Saída:
AB
Esta estratégia fornece uma solução alternativa para gravar no início de um buffer em Golang, apesar das limitações da biblioteca padrão bytes.Buffer type.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3