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

广告
将在 10 秒后关闭
bannerAds