1. ホーム
  2. string

[解決済み] Goで[]byteとstringのどちらを使うか?

2023-06-10 03:21:48

質問

Go アプリケーションを書くときに、よくあることです。 []byte または string . の明らかな変更可能性とは別に []byte を使用することをどのように決定すればよいのでしょうか?

例としていくつかのユースケースを用意しています。

  1. ある関数が新しい []byte . スライス容量は固定なので、文字列を返さない理由は何でしょうか?
  2. []byte のようにきれいに表示されません。 string のようにきれいに印刷されないので、私はしばしば string にキャストしています。本来は常に string ?
  3. 前置詞の場合 []byte を追加する場合、常に新しい基礎となる配列が作成されます。プリペンドするデータが一定であるなら、なぜこれが string ?

どのように解決するのですか?

私のアドバイスは、テキストを扱うときはデフォルトで文字列を使用することです。しかし、次の条件のいずれかに当てはまる場合は、代わりに[]byteを使用してください。

  • mutability of a []byte will significantly reduce the number of allocations needed.

  • あなたは[]byteを使用するAPIを扱っており、文字列への変換を避けることでコードを簡素化することができます。