你知道Go语言的Rune吗?
2023-02-19 12:17:53 时间
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」,可以通过以下二维码关注。转载本文请联系程序员升级打怪之旅公众号。
相关文章
- Tars-Java客户端源码分析
- Java 多线程上下文传递在复杂场景下的实践
- Java 并发编程之 JMM & volatile 详解
- Java设计模式之观察者模式
- Java设计模式之迭代器模式
- vue基本语法
- 河道采砂识别监测系统
- 项目统一异常处理设计
- Es6基本语法
- 华为交换机补丁升级详细过程_CE6856_详细过程
- ASCII码表_ASCII码对照表
- 无语,萝卜遭遇小偷加骗子,还被PUA!
- 项目统一返回结果设计
- 如何去除pycharm中警告波浪线
- Gradle与IDEA整合
- Drawio v20.2.3 开源跨平台绘图软件
- Gradle入门
- Typecho优化加速 - Gzip压缩
- Java反编译工具JAD下载和使用
- H3C交换机堆叠配置及命令详解