Go でのルーンによる文字列の反復
Go で文字列を反復する場合、開発者はルーン (Unicode コード) を操作する必要があることがよくあります。バイトではなくポイント)。これは、Go の文字列型がルーンではなくバイトを格納するためです。
次のコード スニペットを考えてみましょう:
for i := 0; i < len(str); i++ { dosomethingwithrune(str[i]) // takes a rune }
このスニペットは、文字列 str 内の文字を反復処理して、何らかのアクションを実行することを目的としています。それぞれのルーンで。ただし、str[i] にアクセスすると、ルーンではなくバイトが返されます。
文字列内のルーンを反復処理するために、Go はこの目的専用の範囲式を提供します。
for pos, char := range "日本語" { fmt.Printf("character %c starts at byte position %d\n", char, pos) }
In上の例では、範囲式は文字列内のルーンを反復処理し、現在のルーンを変数 char に割り当て、現在のバイト位置を変数 pos に割り当てます。
範囲式の利点は、UTF を処理できることです。 -8 は自動的にデコードされ、個々の Unicode コード ポイントが分割されます。これにより、手動反復の潜在的な落とし穴を回避しながら、文字列内のルーンを反復するタスクが簡素化されます。
以上がGo 文字列内のルーンを反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。