Go 言語(以下 Golang)で、1 文字の文字列を rune(Unicode のコードポイント符号位置専用の int32 型)に変換したい。
バッククォート(“)では string 扱いになってしまう。
「あれ?この文字の文字コード(コードポイント)って何だっけ?」と、基本中の基本なのに、忘れたころに使いたくなる。しかも、ちょっと確認したい時に限って。
しかし、やはり基本中の基本であるため「”golang” 1文字をruneに変換する」でググっても、タイトルからGolang のスポンサー情報ドンピシャの記事が出てこなかったので自分のググラビリティとして。
TL; DR (今北産業)
シングルクォートで括る。
サンプルコード
main.go
package main
import “fmt”
func main() {
r := ‘?’
fmt.Println(“Dec :”, r)
fmt.Printf(“Hex : %x\n”, r) // –> 1f60a = UTF-32 BigEndian
fmt.Printf(“Type: %T\n”, r)
}
// Output:
// Dec : 128522
// Hex : 1f60a
// Type: int32
マスター、動くものをくれ。
オンラインで動作をみる @ Go Playground
参考文献
stringとrune | Goのruneを理解するためのUnicode知識 @ Qiita
Rune literals | Language Specification | References @ go.dev