Maison  >  Article  >  développement back-end  >  Comment puis-je écrire au début d’un Bytes.Buffer dans Golang ?

Comment puis-je écrire au début d’un Bytes.Buffer dans Golang ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 08:25:30500parcourir

How Can I Write to the Beginning of a Bytes.Buffer in Golang?

Prefix Buffer écrit en Golang

En Golang, le bytes.Buffer est un type conçu pour une concaténation et une manipulation efficaces de chaînes. Cependant, certains développeurs peuvent être confrontés au besoin d'écrire au début d'un tampon, contrairement aux méthodes d'assistance intégrées (par exemple, WriteString) qui s'ajoutent uniquement au tampon.

Écrire au début du tampon.

Bien que le buf (tampon d'octets interne) sous-jacent de bytes.Buffer ne soit pas exporté, il est possible de manipuler son contenu indirectement. Voici comment y parvenir :

<code class="go">buffer.WriteString("B")
s := buffer.String()
buffer.Reset()
buffer.WriteString("A" + s)</code>
  1. Écrire à la fin du tampon : Dans un premier temps, écrivez la chaîne "B" à la fin du tampon en utilisant WriteString.
  2. Récupérer le contenu du tampon : utilisez la méthode String pour récupérer l'intégralité du contenu du tampon au format chaîne et le stocker dans la variable s.
  3. Réinitialiser le tampon : Réinitialiser le tampon à son état initial, ce qui supprime tout le contenu précédent du tampon.
  4. Écrire au début du tampon : Écrivez la chaîne "A" suivie de la chaîne s précédemment récupérée dans le tampon en utilisant WriteString.

En concaténant "A" et s, nous écrivons effectivement "A" au début du tampon, suivi du contenu d'origine.

Exemple

Le code suivant illustre le processus :

<code class="go">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())
}</code>

Sortie :

AB

Cette stratégie fournit une solution de contournement pour écrire au début d'un tampon dans Golang malgré les limitations des octets de la bibliothèque standard.Type de tampon.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn