概述
- rune 可以看作以 Unicode 码点为单位的
byte
,区别在于:
byte
是定长的,固定 8 个比特位,
rune
是不定长的,根据 Unicode 码点需要的存储容量变长;
一个 Unicode 码点 ==> 1rune
==> 1~nbyte
len(str)
返回字符串的字节个数,是存储所占byte
的数量,而不是rune
数量
这段代码就是错误遍历字符串的典型,正确方式是使用str := "你好 Hello World!" for i := 0; i < len(str); i++ { fmt.Printf("%c", str[i]) } ä½ å¥½ Hello World!
range
,如下:str := "你好 Hello World!" for _, v := range str { fmt.Printf("%c", v) } 你好 Hello World!
- string 与 []rune 切片能够实现互转
str := "你好 Hello World!" runes := []rune(str) // string 转 []rune for i := 0; i < len(runes); i++ { fmt.Printf("%c", runes[i]) } fmt.Println() str2 := string(runes) // []rune 转 string fmt.Println(str2) 你好 Hello World! 你好 Hello World!
- rune 为什么是 int32 的别名,而不是 uint32 呢?
最后
以上就是结实楼房为你收集整理的rune 与 string 的区别和联系(笔记)的全部内容,希望文章能够帮你解决rune 与 string 的区别和联系(笔记)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复