你会用 Go 语言的 rune 类型吗?
rune 它是 int32 的别名(-2147483648~2147483647),相比于 byte(-128~127),可表示的字符更多。
由于 rune 可表示的范围更大,所以能处理一切字符,当然也包括中文字符。在平时计算中文字符,可用 rune。
当我们数据中有中文时,一定要注意 rune 的处理。
len()详解
len()获得的是 byte 字节的数量,一个中文占用 3 个字节
复制代码
输出结果是:8 5 3
循环输出字符串
复制代码
输出结果:
我们发现英文可以正常输出,但是中文通过这种方式输出会乱码
循环输出中文字符串
我们可以通过 for range 循环,从字符串中拿出具体的字符
复制代码
输出结果:
字符串的修改
字符串修改是不能直接修改的,需要转成 rune 切片后再修改
复制代码
输出结果:大白兔
字符和字符串的区别
复制代码
输出结果:
复制代码
总结:我们发现只要是双引号包裹的类型就是 string,只要是单引号包裹的类型就是 int32,也就是 rune。和中英文无关。
知识点:rune 的别名是 int32
类型转换
复制代码
输出结果:
复制代码
总结
字符串的修改要转成 rune 切片,而不能像 PHP 一样直接修改。
一起学习,升级打怪
我们搞了一个对学 Go 真正有帮助的群,欢迎加入:
公众号:程序员升级打怪之旅
微信号:wangzhongyang1993
版权声明: 本文为 InfoQ 作者【王中阳Go】的原创文章。
原文链接:【http://xie.infoq.cn/article/b6d66f4d7935fd35f67712475】。文章转载请联系作者。
评论 (1 条评论)