Maison  >  Article  >  développement back-end  >  Comment insérer des données au début d'un bytes.Buffer en Golang ?

Comment insérer des données au début d'un bytes.Buffer en Golang ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 10:45:30774parcourir

How can you insert data at the beginning of a bytes.Buffer in Golang?

Écrire au début d'un tampon en Golang

Lorsque vous travaillez avec le type bytes.Buffer en Golang, il est courant d'ajouter des données au tampon en utilisant des méthodes comme WriteString. Cependant, que se passe-t-il si vous souhaitez insérer des données au début du tampon ?

Problème :

Vous avez un bytes.Buffer appelé buffer et une chaîne s contenant des données écrire. À l’aide de la méthode WriteString, vous ajoutez s à la fin du tampon. Est-il possible d'écrire au début du tampon au lieu d'ajouter ?

Solution :

Bien que la tranche buf sous-jacente des octets.Buffer ne soit pas directement exportée, vous pouvez toujours écrire au début du tampon en suivant les étapes suivantes :

  1. Écrivez un petit caractère de préfixe ("B" dans l'exemple) dans le tampon à l'aide de WriteString.
  2. Convertissez le contenu actuel du tampon en chaîne à l'aide de String.
  3. Réinitialisez le tampon à l'aide de Reset.
  4. Écrivez à nouveau le caractère préfixe, mais cette fois en le combinant avec la chaîne précédemment convertie ("A" s in l'exemple).

Exemple :

<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

Dans cet exemple , nous ajoutons d'abord "B" au tampon, récupérons le contenu actuel du tampon sous forme de chaîne, réinitialisons le tampon et enfin écrivons "A" suivi de la chaîne récupérée, ajoutant effectivement "A" au 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