今天写 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的最直接的区别。

