Golang で bytes.Buffer の先頭にデータを挿入するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-27 10:45:30
オリジナル
872 人が閲覧しました

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

Golang でのバッファの先頭への書き込み

Golang でバイトバッファ型を扱う場合、データを追加するのが一般的ですWriteString などのメソッドを使用してバッファに書き込みます。しかし、バッファの先頭にデータを挿入したい場合はどうすればよいでしょうか?

問題:

バイトがあります。buffer という名前のバッファとデータを含む文字列があります。書くこと。 WriteString メソッドを使用して、バッファーの末尾に s を追加します。追加する代わりにバッファーの先頭に書き込むことは可能ですか?

解決策:

bytes.Buffer の基礎となる buf スライスは直接エクスポートされませんが、次の手順を使用してバッファの先頭に書き込むこともできます。

  1. WriteString を使用して小さなプレフィックス文字 (この例では「B」) をバッファに書き込みます。
  2. String を使用して現在のバッファの内容を文字列に変換します。
  3. Reset を使用してバッファをリセットします。
  4. プレフィックス文字を再度書き込みますが、今回は以前に変換された文字列 ("A" の文字列と結合されます)

例:

<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>
ログイン後にコピー

出力:

AB
ログイン後にコピー

この例ではでは、最初に「B」をバッファーに追加し、現在のバッファーの内容を文字列として取得し、バッファーをリセットし、最後に「A」に続けて取得した文字列を書き込み、実質的に「A」をバッファーの先頭に追加します。

以上がGolang で bytes.Buffer の先頭にデータを挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート