5.6 字符串和字节数组
字符串和字节数组有密切关系,我们可以轻易的将它们转换成对方:
stra := "the spice must flow"
byts := []byte(stra)
strb := string(byts)
事实上,这也是大多数类型的转换方式。一些函数明确指定一个int32
或者int64
或者相应的无符号类型。你可能会发现你自己不得不像下面一样:
int64(count)
尽管如此,当提到字节数组和字符串时,这可能是你会一直接触的东西。在你使用[]byte(X)
或者string(X)
时务必注意,你创建的是数据的拷贝。这是由于字符串的不可变性。
当字符串有由unicode
字符码runes
组成时。如果你计算字符串的长度时,可能得到的结果和你期待的不同。下面结果是输出3:
fmt.Println(len(""))
如果你通过range
遍历一个字符串,你将得到runes
,而不是bytes
。当然,当你将一个字符串转换成一个[]byte
时,你将得到正确的数据。
链接
看完两件小事
如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:
- 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
- 关注公众号 「IT平头哥联盟」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程