Go での Runes による文字列の反復
Go では、文字列をそのルーン文字によって反復したい状況に遭遇することがあります。個々のルーン文字、または Unicode コード ポイント。各文字にアクセスするには、インデックス i を指定した従来の for ループを使用したくなるかもしれません:
for i := 0; i < len(str); i++ { dosomethingwithrune(str[i]) // takes a rune }
ただし、str[i] は代わりにバイト (uint8) を返すため、このアプローチは正しく機能しません。ルーン。ルーン文字で文字列を反復処理するには、範囲構文を使用する必要があります:
for pos, char := range "日本語" { fmt.Printf("character %c starts at byte position %d\n", char, pos) }
このコードは次の出力を出力します:
character 日 starts at byte position 0 character 本 starts at byte position 3 character 語 starts at byte position 6
Effective Go のドキュメントで説明されているように、範囲構文は、「UTF-8 を解析して個々の Unicode コード ポイントを分割することで、より多くの作業を実行します。」これにより、ルーン文字を直接操作できるようになり、文字列に対して Unicode 関連の操作を簡単に実行できるようになります。
以上がGoでルーン文字列を反復処理する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。