Go 变量 字符类型

字符基本介绍


在 Go 语言中,还有一种字节类型 byte,它其实等价于 uint8 类型,可以理解为 uint8 类型的别名,用于定义一个字节,所以字节 byte 类型也属于整型。 

Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用bytebyte类型的范围是0-255,所以0-255字符都可以用byte来保存,经典的就是asii里面的字符都可以使用byte来保存)来保存。

字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。

当我们输出byte值的时候,就是输出了对应字符的码值。

	var c1 byte = 'a'
	var c2 byte = '0'
	fmt.Println(c1,c2)

97 48

如果想要输出对应的字符需要使用格式化输出即可%c

	fmt.Printf("%c  %c",c1,c2)

a  0

如果给了一个汉字会出错,因为对应的码值超出了0-255,byte是存储不进去的,使用int是可以存储进去的。

var c1 byte = '呗'
	c3 := []byte{97,48}
	fmt.Println(string(c3))

a0

对上面代码说明

1)如果我们保存的字符在 ASCⅡ表的,比如【0-1.a-z,A-Z.】直接可以保存到 byte

2) 如果我们保存的字符对应码值大于255,这时我们可以考虑使用 int类型保存

3)如果我们需要安装字符的方式输出,这时我们需要格式化输出,即 fmtPrintf("%c"c1).

字符类型使用细节


1) 字符常量是用单引号('')括起来的单个字符,而不是双引号。例如∶var c1 byte='a'             var c2 int='中'            var c3 byte= 'g'

2)Go中允许使用转义字符'\'来将其后的字符转变为特殊字符型常量。

例如∶var c3 char ='\n'    // '\n'表示换行符

3) Go语言的字符使用UTF-8编码,英文字母占有一个字节,汉字使用3个字节

a := []byte("中")
for _,v := range a{
	fmt.Println(v)
}

fmt.Println(len(a))

228
184
173
3

4)在Go中,字符的本质是一个整数,直接输出时,是该字符对应的UTF-8编码的码值。

5)  可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的unicode 字符

6) 字符类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码.

字符类型本质探讨


1) 字符型存储到 计算机中,需要将字符对应的码值(整数)找出来

存储∶字符-->对应码值--->二进制->存储读取∶二进制--->码值--->字符-->读取

2) 字符和码值的对应关系是通过字符编码表决定的(是规定好)

3)Go语言的编码都统一成了utf-8。非常的方便,很统一,再也没有编码乱码的困扰了

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/124021277