A --> 65
a --> 97
0 --> 48
9 --> 57
中--> 20013

在Go语言中,字符是用单引号括起来的一个字符,可以是单字节也可以是多字节字符,在GO中你可以将字符看做整型数字,所以Go使用 byte, intxx, uintxx, rune 来存贮字符。
默认使用4个字节来存储字符,除非你有所指定。

var a byte = 'A'
var b = 'A'
var c = '中'
fmt.Println(a) // 65
fmt.Println(b) // 65
fmt.Println(c) // 20013

fmt.Printf("%T\n", a) // uint8
fmt.Printf("%T\n", b) // int32
fmt.Printf("%T\n", c) // int32

fmt.Println(a+100) // 165

从这个意义上来讲,字符就是数值,无需转换。

对于多字节字符,通常通过 rune 类型来表示

for _, v := range []rune("你们好") {
	fmt.Println(v)
}

20320
20204
22909

Go中的字符串实际上是字节切片[]byte,使用string()函数可以将字符转换成字符串。

var a byte = 'A'
var b = 97
var c = '中'

fmt.Println(string(a)) // A
fmt.Println(string(b)) // a
fmt.Println(string(c)) // 中