乐趣区

关于google:golang-rune类型

golang 中 rune 类型

    在 golang 中 rune 等同于 int32, 只是个别用于字符转换。golang 中 len()办法次要计算数组长度。golang 中默认存储字符串是采纳 utf8 格局,utf8 采纳变长字节存储,英文字母是单字节存储,中文是 3 个字节存储,所以 - 1 和 - 2 的执行后果是 16 和 15。golang 中有 utf8.RuneCountInString 和 []rune() 两种形式将 utf8 转换成 4 个字节的 int32 存储,而后计算 int32 数组的长度。

 -1
 address := "this is shanghai"
 fmt.Println("len(address):",len(address))
 
 -2
 address := "this is shanghai"
 fmt.Println("len(address):",len(address))
 
 -3
 addressThree := "这是在上海"     
 fmt.Println("len(address):",utf8.RuneCountInString(addressThree))

 -4
 fmt.Println("len(address):",len([]rune(addressThree)))

后果

-1 
len(address): 16

-2
len(address): 15

-3
len(address): 5

-4
len(address): 5
退出移动版