不同于别的语言,Go没有专门的char类型可以用于表示字符,那么Go应该如何表示一个字符呢?
首先要知道,在go语言中,字符本身并无法存储,存储的是这个字符在Unicode字符集中对应的整数值。
那么一个整数值,可以用哪些数据类型来存储呢?
整型和浮点型都可以用于表示字符
因为经过ASCII码表变换后得到的一个整数值,所以12种整型(int8, int16, int32, int64, uint8, uint16, uint32, uint64, byte, rune, uint, int)和2种浮点型(float32, float64)都可以用来存储字符。
此处要注意,字符在Unicode字符集中对应的整数值,要在其存储类型的表数范围内才行。
举个例子,byte的表数范围在-128~127,那么byte就不能存储字符 '北' ,因为北在Unicode字符集中对应的整数值为21271,超出了byte的表示范围。
那么这么多种数据类型,我们在日常使用时应该选用哪一种来进行字符的存储呢?
日常使用时,用这些数据类型来表示字符
通常用 byte 来表示数字、字母、符号。
通常用 rune 来表示汉字。
用这两种类型,实现了在可以满足表数范围的前提下,占用最小的内存。
讲了这么多,那么如何输出这个字符原本的值呢?
如何表设计字符原本的值
1. 使用string()将其强制转换为字符串。
2. 使用 fmt.Printf() 进行格式化输出。