Go 语言之父带你重新认识字符串、字节、rune 和字符
这两天被一些字符串的问题困扰了一段时间,通过Google搜到了以前罗伯·派克发表在Go Blog的文章,文章中为读者详述了Go语言中字符串与我们经常提起的字节、字符还有rune的关系和相互之间的不同。正如派克在文中所说
字符串这个话题对于一篇博客文章来说似乎太简单了,但是要很好地使用它们,不仅需要了解它们的工作原理,还需要了解字节,字符和 rune 的区别,以及 Unicode 和 UTF- 8,字符串和字符串直接量之间的区别,以及其他甚至更细微的区别。
文章篇幅还是挺长的,大家时间都很宝贵所以我先把文章探究的问题的结论放在前面,有时间的同学还是建议整篇读一下。
- Go 源代码始终为 UTF-8。
- 字符串可以包含任意字节。
- 字符串文字中不包含字节级转义符时字符串始终包含有效的 UTF-8 序列。
- 代表 Unicode 码点的字节序列称为
rune
。 - 在 Go 中不会保证字符串中的字符被规范化。
原文的语法、句式都很好学习Go 语言的同时还能加强一下英文阅读推荐去读英文原文,有翻译不清楚的欢迎指正。
正好看见 LearnKu 也有翻译计划今天就翻译了下,LearnKu这个翻译功能做的不错,不用整篇翻译完再提交中间还能休息下。不过有个标题忘记改成中文了发现全篇翻译完就不能再编辑了,有知道怎么编辑的可以留言说一下😂。
译文链接:重新认识Go中的字符串
Go语言之父带你重新认识字符串、字节、rune和字符
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: