1.基本介绍
Golang中没用专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。
1)如果我们保存的字符在ASCII表的,比如[0-1,a-z,A-Z...] 可以直接用byte保存
2)如果我们保存的字符串对应码值大于255时,这时我们可以考虑使用int类型保存
3)如果我们需要按照字符的方式输出,可以通过格式化输出,如:fmt.Printf("%c",c1)
4)如果我们需要输出字符的ASCII码值,可以通过格式化输出查看,如:fmt.Printf("%d",c1)
5)如果我们需要按照字符串的方式输出,可以通过格式化输出,如:fmt.Printf("%s",s1)
2. 字符类型使用细节
1)字符常量是用单引号('')括起来的单个字符。例如: var c1 byte='a'
2)Go语言的字符使用UTF-8编码,兼容ASCII码,查询utf-8码值的网址:查看字符编码(UTF-8) (mytju.com)
3)Go语言的字符使用UTF-8编码 英文字母-1个字节 汉字-3个字节
4)在Go中,字符的本质的本质是一个整数,直接输出时,是该字符对应的UTF-8编码的码值。
5)可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的unicode字符
6)字符类型时可以进行运算的,相当于一个整数,因为它都对应有Unicode码。
3. 字符类型本质
1) 字符型 存储到 计算机中 需要将字符对应的码值(整数)找出来
存储: 字符 --> 对应码值 --> 二进制 -->存储
读取: 二进制 --> 码值 --> 字符 --> 读取
2)字符和码值的对应关系是通过字符编码表决定的(规定好的)
3)Go语言的编码都统一成了utf8。很统一,再也没有编码乱码的困扰了。