概述
Go 中示意字符的关键字为 rune
, 也就是 int32
的别名。
ASCII
码只须要 7 bit 就能够残缺地示意,但只能示意英文字母在内的 128 个字符。
为了示意世界上大部分的文字零碎,创造了 Unicode
,它是 ASCII
的超集,蕴含世界上书写零碎中存在的所有字符,
并为每个代码调配一个规范编号(称为 Unicode CodePoint),在 Go 中称之为 rune
。
语法规定
由单引号 '
括起来,只能蕴含一个字符
字符串长度
对于字符串不同编码对长度的计算形式,感兴趣的读者能够参考扩大浏览。
例子
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
s := 'a'
fmt.Printf("s type = %T, len = %d\n", s, utf8.RuneLen(s))
s2 := '我'
fmt.Printf("s2 type = %T, len = %d\n", s, utf8.RuneLen(s2))
}
// $ go run main.go
// 输入如下
/**
s type = int32, len = 1
s2 type = int32, len = 3
*/
扩大浏览
- 十分钟搞清字符集和字符编码