php エディター Youzi を使用すると、Golang のバイトと文字列を詳しく調べることができます。 Golang では、バイトと文字列は一般的なデータ型ですが、それらの間には微妙な違いと変換方法がいくつかあります。これらの違いと変換方法を理解すると、データをより適切に処理し、プログラムのパフォーマンスを最適化するのに役立ちます。この記事では、バイトと文字列の概念、相互変換の方法、実際のアプリケーションでの使用シナリオを紹介し、Golang でのバイトと文字列をより深く理解し、適用するのに役立ちます。一緒に探検しましょう!
golangで同じ長さの2つの文字列間の共通要素を見つけようとしています。
要素は見つかりましたが、文字列表現にはバイト値も含まれているようです。どうすれば取り除くことができますか?
リーリー得られる出力は
です リーリーここに提供されているコード
fmt.printf の代わりに
fmt.sprintf を使用する必要があります。
また、組み込みの println
の使用を避け、代わりに fmt.println
を使用してください。
https://pkg.go.dev/[email protected]#printf
リーリーprintf は、フォーマット指定子に従ってフォーマットし、標準出力に書き込みます。 書き込まれたバイト数と、発生した書き込みエラーを返します。
したがって、18 (0x0,0x0)
...
18
は、文字列 "common element = i"
の文字数です。 (0x0,0x0)
は、println
によって出力される nil
エラー値です。 しかし、さらに重要なのは、バイトとルーンが混在しているため、アルゴリズムに欠陥があります。文字列を range
に設定すると、反復変数 charvalue
に rune
(マルチバイトの場合もあります) が割り当てられます。ただし、文字列 (secelements[index]
など) にインデックスを付けると、結果は常に単一の byte
になります。したがって、関数の結果としてパニックや意味不明な現象 (無効なバイト) が必然的に発生します。 例を参照してください。
次のことを実行すると、より良い結果が得られる可能性があります:
リーリーhttps://www.php.cn/link/dbdc69ea6ccbdea0ca2d796e1af24ebf
以上がGolang のバイトと文字列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。