一、概述
Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。
也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。
二、 字符型使用
func CharDemo() {
var char1 byte = 'a' // 97
var char2 byte = '\t'
var char3 int = '北' // 对应编码值 21271
var char4 byte = 97
//如果我们直接输出一个byte,其实是输出该字符对应的编码值[ASCII]
//如果我们直接输出一个byte,对应的字符 %c
//总结
//1. 当我们将一个字符存放到byte ,或者 int时,本质存放的是该字符对应的编码值(整数)
//2. 如果我们希望输出对应的字符,则使用%c, 如果希望输出 对应的编码值 %v
//3. 默认是输出编码值
fmt.Printf("char1 = %v 字%c符是=%c char3字符是=%c char4对应的字符=%c\n",
char1, char2, char1, char3, char4)
}
三、字符类型使用细节和注意事项
1、字符常量是用单引号(”)括起来的单个字符。
例如:
var c1 byte = 'a'
var c2 int = '中'
var c3 byte = '9'
2、Go中允许使用转义字符 ‘\’来将其后的字符转变为特殊字符型常量。
例如:
var c3 char = ‘\n’ // '\n'表示换行符
3、Go语言的字符使用UTF-8编码 ,英文字母-1个字节 ,汉字-3个字节。
4、在Go中,字符的本质是一个整数,直接输出时,是该字符对应的UTF-8编码的码值。
5、 可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的unicode 字符
例如:
var n1 int = 38889
fmt.Printf("n1=%c ", n1) // 输出’韩‘
6、字符类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码.
例如:
var char5 byte = 'a'
var n10 = char5 + 1 // 98 n10[byte]
fmt.Printf("n10 类型=%T, 值=%v 对应的字符=%c", n10, n10, n10) // ==> 97+1