今天写 for 循环变量一个 string
类型的字符串时,用到了rune
类型,便简单整理一下 rune
与byte
之间的区别。
首先来看,如果我们分别用 rune
与 byte
输出一个字符串,会得到什么:
go
1 | package main |
然后输出结果是这样的:
go
1 | [118 105 111 108 97] |
emmmm, 这不一样吗? 但肯定有区别! 不然干嘛弄两个一样的东西,追一下源码发现, byte
是一个字节的,rune
是四个字节的,那么,我们输出一下中文字符,就可以看出区别咯?
go
1 | package main |
结果:
go
1 | [35768 23913] |
果然…同时也可以看出,golang
中每个中文字符串占 3 个字节。所占字节长度不同,是byte
与rune
的最直接的区别。