ホームページ > バックエンド開発 > Golang > Go []int8 スライスを文字列に効率的に変換するにはどうすればよいですか?

Go []int8 スライスを文字列に効率的に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-15 10:44:10
オリジナル
498 人が閲覧しました

How to Efficiently Convert a Go []int8 Slice to a String?

[]int8 を String に変換する

問題:

スライスを効率的に変換する方法int8 ([]int8) を文字列に変換しますか? []byte の標準の文字列 (バイトスライス) 変換は、[]int8 で「文字列型に変換できません」というエラーで失敗します。 int8 と []byte は型が異なるため、直接変換することはできません。したがって、手動変換が必要です。

変換プロセスには 3 つのステップが含まれます:

int8 をバイトに変換します:

バイトを使用して、各 int8 値をバイトにキャストします。 (v) 変換。

    バイトスライスを作成します:
  1. 入力スライスと同じ長さの [] バイト スライスを割り当てます。
  2. 値をバイト スライスにコピーします:
  3. インデックス付け ([]) を使用して、変換されたバイトをバイト スライスに割り当てます。
  4. コード実装:
  5. 次の Go コードは変換を示しています:

このコードは、int8 値がバイトに正しく変換され、正確な文字列表現が得られることを保証します。

注:

func B2S(bs []int8) string {
    b := make([]byte, len(bs))
    for i, v := range bs {
        b[i] = byte(v)
    }
    return string(b)
}
ログイン後にコピー

最初に問題点について言及しましたが、 []int8 でしたが、質問者は後で []uint8 に修正しました。 []uint8 の場合、byte は uint8 のエイリアスであるため、string(ba) を使用して文字列に直接変換できます。

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

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