ホームページ  >  記事  >  バックエンド開発  >  Golang でルーンを文字列に変換するには?

Golang でルーンを文字列に変換するには?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-20 03:50:01670ブラウズ

How to Convert a Rune to a String in Golang?

Golang でルーンを文字列に変換する

ルーンを文字列にキャストして印刷すると、未定義の文字が発生するという懸念があります。問題を詳しく調べて解決策を見つけてみましょう。

まず、元のコードでは、Scanner.Scan() を使用してルーンを読み取りました。ただし、このメソッドは、実際に読み取られるルーンそのものではなく、特別なトークン値を持つトークンまたはルーンを処理するように設計されています。

単一のルーンを読み取るには、代わりに Scanner.Next():

c := b.Next()
fmt.Println(c, string(c), strconv.QuoteRune(c))
このコードは、ルーン文字、その文字表現、および引用符を正しく読み取って出力するようになりました。 version.

あるいは、単純にルーンを文字列に変換したい場合は、直接的な型変換を使用できます。 Rune は int32 のエイリアスであり、整数を文字列に変換すると、UTF-8 表現が生成されます。

r := rune('a')
fmt.Println(r, string(r))
文字列のルーンを反復処理するには、for ... range ループを使用できます。

for i, r := range "abc" {
    fmt.Printf("%d - %c (%v)\n", i, r, r)
}
次を使用して文字列をルーンのスライスに変換することもできます[]rune("abc").

もう 1 つのオプションは、utf8.DecodeRuneInString() を使用することです。

Scanner.Scan() を使用する元のコードでは、誤ってスキャナーのモードを次のように設定してしまいました。 「a」のような識別子を含む Go トークンを処理します。 Scan() を呼び出すと、scanner.Ident が返され、識別子のテキストが出力されたため、未定義の文字が生成されました。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。