Go で UTF-8 文字列をバイト配列に効率的に変換するにはどうすればよいですか?

DDD
リリース: 2024-10-29 07:47:30
オリジナル
670 人が閲覧しました

How to Efficiently Convert UTF-8 Strings to Byte Arrays in Go?

UTF-8 文字列をバイト配列に変換する

Go では文字列が UTF-8 として保存される一方で、JSON のアンマーシャリングにはバイト スライス入力が必要です。この記事では、UTF-8 文字列からバイト配列への効率的な変換について説明します。

直接変換

Go では、文字列をバイト スライスに変換し、文字列のバイトのコピーを作成できます。 :

<code class="go">s := "some text"
b := []byte(s)</code>
ログイン後にコピー

ただし、大きな文字列の場合、このアプローチはコピーのため非効率的です。

io.Reader を使用する

効率的な代替手段strings.NewReader() を使用して、コピーせずに文字列から読み取る io.Reader を作成しています。

<code class="go">s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)</code>
ログイン後にコピー

このアプローチでは、文字列のコピーが回避されます。

小さな JSON テキスト

小さな JSON テキストの場合、直接変換が依然として高速なオプションです:

<code class="go">s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.Unmarshal([]byte(s), &result)</code>
ログイン後にコピー

注: io.Reader から JSON を読み取るとき (例: ファイルまたはネットワーク)、中間文字列の読み取りなしで io.Reader を json.NewDecoder() に直接渡します。

以上がGo で UTF-8 文字列をバイト配列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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