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 协议》,转载必须注明作者和本文链接
推荐文章: