golang 的 rune 和 byte
- go 语言中 runte 和 byte 实际上是 uint8 和 int32 类型。byte 用来强调数据是 raw data,而不是数字;而 rune 用来表示 Unicode 的 code point。参考规范:
uint8 the set of all unsigned 8-bit integers (0 to 255)
int32 the set of all signed 32-bit integers (-2147483648 to 2147483647)
byte alias for uint8
rune alias for int32
2.[s] runte 和 [s] byte 的区别
从输出来看, 没有任何区别, 作者不可能无缘无故弄出两个相同的东西,那么到底区别在哪里呢?翻看源码才知道
这里也可以很清晰的看出这里的中文字符串每个占三个字节, 区别也就一目了然了。
我们可以测试一下切片截取中文字符串和英文字符串的区别
英文字符串能正常的截取,中文字符串截取乱码。
那么该如何截取呢?这里就需要将中文利用 [] rune 转换成 unicode 码点, 再利用 string 转化回去
参考文章 http://www.cnblogs.com/sunsky303/p/9764910.html#
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: