ホームページ >バックエンド開発 >Golang >Golang のバイトと文字列

Golang のバイトと文字列

WBOY
WBOY転載
2024-02-09 09:00:29903ブラウズ

Golang 字节与字符串

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 に設定すると、反復変数 charvaluerune (マルチバイトの場合もあります) が割り当てられます。ただし、文字列 (secelements[index] など) にインデックスを付けると、結果は常に単一の byte になります。したがって、関数の結果としてパニックや意味不明な現象 (無効なバイト) が必然的に発生します。 を参照してください。

次のことを実行すると、より良い結果が得られる可能性があります:

リーリー

https://www.php.cn/link/dbdc69ea6ccbdea0ca2d796e1af24ebf

以上がGolang のバイトと文字列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。