🐡
Golang 文字"A"の次の値として"B"を取得したい
文字の加算をする
以下の例を見てください。
一見するとちょっと不思議なことが起こります。
fmt.Println("H" + "i")
fmt.Println('H' + 'i')
>> Hi
>> 177
なぜこうなるのか
シングルクォーテーションで文字を囲った場合、stringではなくruneと識別されるためです。
結果として、Unicodeのcode pointを整数値で表しています。
runeとは、code pointとはなどは以下の記事が参考になりました。
こんなことに使える
文字列 "A"の次の値として "B"を取得したいとき。
私は、GoでExcelの操作ができるライブラリexcelizeを使用したとき、セルの位置を指定する際に使いました。
package main
import "fmt"
func main() {
fmt.Println(string('A' + 1))
}
参考
Discussion