Go 言語(以下 Golang)で、1 文字の文字列を
rune
(Unicode のコードポイント専用のint32
型)に変換したい。バッククォート(
``
)ではstring
扱いになってしまう。
「あれ?この文字の文字コード(コードポイント)って何だっけ?」と、基本中の基本なのに、忘れたころに使いたくなる。しかも、ちょっと確認したい時に限って。
しかし、やはり基本中の基本であるため「"golang" 1文字をruneに変換する」でググっても、タイトルからGolang のスポンサー情報が出てこなかったので自分のググラビリティとして。
TL; DR (今北産業)
-
シングルクォートで括る。
-
サンプルコード
main.gopackage 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