Goでルーン文字列を反復処理する方法?

Susan Sarandon
リリース: 2024-11-13 11:19:02
オリジナル
765 人が閲覧しました

How to Iterate Over a String by Runes in Go?

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 サイトの他の関連記事を参照してください。

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