Go 语言的字符有以下两种:
- uint8 类型,或者叫byte类型,代表的的ascii的一个字符
- rune类型,代表的是一个utf8字符
所以说,当我们处理带有汉字的复合字符串时,则需要rune类型。rune类型实际是一个int32
package main
import "fmt"
func main() {
s := "你好 golang"
for _, val := range s {
// 一个汉字占3个字节,一个字符占一个字节,所有打印的小标是0,3,6,7
// fmt.Print(key) // 0 3 6 7 8 9 10 11 12
fmt.Printf("%v(%c)", val, val)
}
}