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时,你将得到正确的数据。

链接

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「IT平头哥联盟」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""