Go JavaScript の charCodeAt() メソッドと同等
JavaScript の charCodeAt() メソッドは、特定の位置にある文字の Unicode 数値を取得します。例:
<code class="javascript">"s".charCodeAt(0) // returns 115</code>
Go では、文字タイプは rune で、これは int32 のエイリアスであり、それ自体が数値です。したがって、直接印刷することで Unicode 数値を取得できます。
指定した位置の文字を取得するには、文字列を []rune に変換してインデックスを使用するのが最も簡単な方法です。文字列をルーンに変換する方法は、型変換 []rune("some string"):
<code class="go">fmt.Println([]rune("s")[0])</code>
出力:
115
文字として出力するには、% を使用します。 c フォーマット文字列:
<code class="go">fmt.Println([]rune("absdef")[2]) // Also prints 115 fmt.Printf("%c", []rune("absdef")[2]) // Prints s</code>
さらに、文字列の for range は文字列内のルーン文字を反復するため、それも使用できます。 []rune に変換する場合と比較して、この方法はより効率的です:
<code class="go">i := 0 for _, r := range "absdef" { if i == 2 { fmt.Println(r) break } i++ }</code>
範囲の戻り値はバイト位置であるため、カウンター i は別個のカウンターである必要があり、ループ反復変数にすることはできないことに注意してください。ルーンインデックスではありません (文字列に UTF-8 表現のマルチバイト文字が含まれている場合は異なります)。
は関数にラップされます:
<code class="go">func charCodeAt(s string, n int) rune { i := 0 for _, r := range s { if i == n { return r } i++ } return 0 }</code>
最後に、Go の文字列は、UTF-8 でエンコードされたテキストのバイト シーケンスである []byte に格納されることに注意してください (詳細については、記事「Go の文字列、バイト、ルーン、および文字」を参照してください)。文字列でコードが 127 未満の文字を使用することが保証されている場合は、バイトを直接使用できます。つまり、Go で文字列にインデックスを付けると、そのバイトにインデックスが付けられます。たとえば、「s」[0] は文字「s」のバイト値 115 です。
<code class="go">fmt.Println("s"[0]) // Prints 115 fmt.Println("absdef"[2]) // Prints 115</code>
以上がGo で文字の Unicode 値を取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。