01-数据类型之值类型之 byte 和 rune
组成每个字符串的元素叫做字符。可以通过遍历或者单个获取字符串元素获得字符,遍历的函数有两个,分别是 byte 和 rune
byte
byte 是 uint8 的别称,使用 byte 主要是为了区分字节和无符号整型两种类型
byte
代表了 ASCII 码的一个字符,直接打印字节输出的是 ascii 码,字节必须使用单引号包起来,需要通过格式化输出
示例:
1 |
|
输出:
1 |
|
rune
rune 是 int32 的别称,使用 rune 主要是为了区分字符和整型两种类型
rune
代表一个 UTF-8
字符,字符必须使用单引号包起来
当需要处理中文、日文或其他复合字符时,需要使用 rune
类型。rune
类型实际是一个 int32
示例:
1 |
|
输出结果:
1 |
|
byte & rune
byte
表示一个字节,可以表示英文字符等占用一个字节的字符,占用多于一个字节的字符就无法正确表示,例如占用 3 个字节的汉字rune
表示一个字符,用来表示任何一个字符
示例:
1 |
|
输出结果:
1 |
|
可以看出 byte 并不能正确解析超过 1 byte 的字符,需要使用 rune
转换
byte 和 rune 之间可以转换,
- byte 转向 rune 时不会出错
- rune 转向 byte 时会出现问题:
- 如果 rune 表示的字符只占用一个字符,不超过 uint8 时不会出错;
- 超过时直接转换编译无法通过,可以通过引用转换,但是会舍去超出的位,出现错误结果
示例:
1 |
|
输出结果:
1 |
|
01-数据类型之值类型之 byte 和 rune
https://flepeng.github.io/021-Go-31-Go-基础-01-数据类型之值类型之-byte-和-rune/