ホームページ >バックエンド開発 >Golang >Goで文字列をバイト配列に変換する最も効率的な方法は何ですか?

Goで文字列をバイト配列に変換する最も効率的な方法は何ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-24 00:20:11766ブラウズ

What's the Most Efficient Way to Convert Strings to Byte Arrays in Go?

Go で文字列をバイト配列に効率的に変換する方法

Go でバイナリ データを扱う場合、多くの場合、文字列をバイト配列に変換する必要があります。バイト配列。これを実現するにはいくつかのアプローチがあり、それぞれに独自の長所と短所があります。

安全ではないが高速: バイト スライシングの使用

質問で提供されているスニペットは for を使用しています。ループを使用して文字列の各バイトをバイト配列に手動で割り当てます:

for k, v := range []byte(str) {
  arr[k] = byte(v)
}

このメソッドは速度の点では効率的ですが、また、境界チェックが実行されず、宛先配列が小さすぎるとランタイム エラーが発生する可能性があるため、安全でもありません。

安全かつシンプル: バイト リテラルの使用

より簡潔で安全なアプローチは、バイト リテラル構文を使用することです:

[]byte("Here is a string....")

このメソッドを直接使用します。手動変換やループを必要とせずに、指定された文字列からバイト配列を構築します。

その他の代替手段

  • copy: copy 関数は次の目的で使用できます。宛先配列に十分なデータがあれば、2 つのバイト配列間、または文字列とバイト配列の間でデータを転送します。 capacity.
  • strings.NewReader: 文字列が長く、io.Reader として保存されている状況では、strings.NewReader 関数を使用して、バイトのストリームとしての文字列表現からバイト配列を作成できます。

以上がGoで文字列をバイト配列に変換する最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。