golang中的rune类型
2021-06-04 19:52
971 查看
前言
在学习golang基础的时候,发现有个叫rune的的数据类型,因为本人之前一直学习的是Java相关的知识,这里对于golang里面的rune类型确实感到很不理解。因此,特写这篇文章一探究竟。
正文
官方文档解释
// rune is an alias for int32 and is equivalent to int32 in all ways. It is // used, by convention, to distinguish character values from integer values. //int32的别名,几乎在所有方面等同于int32 //它用来区分字符值和整数值 type rune = int32
这样可能还是对rune的作用与意义比较懵逼,我们通过一个简单的demo来看下rune的作用。先来看下下面这块代码执行结果是什么?
运行结果:
猜测结果应该是:8,5个字符1个空格2个汉字。实际上程序的运行结果为12。这是因为:golang中的字符串底层实现是通过byte数组的,中文字符在unicode下占2个字节,在utf-8编码下占3个字节,而golang默认编码正好是utf-8。
如果我们预期想得到一个字符串的长度,而不是字符串底层占得字节长度,该怎么办呢???
golang中byte数据类型与rune相似,它们都是用来表示字符类型的变量类型。它们的不同在于:
byte 等同于int8,常用来处理ascii字符
rune 等同于int32,常用来处理unicode或utf-8字符
相关文章推荐
- golang中的byte、rune对应的基础类型
- golang笔记——数据类型
- golang mysql中timestamp,datetime,int类型的区别与优劣
- golang如何得到一个变量的类型
- 4000 golang返回值为interface{}的类型判断
- 工作随笔——Golang interface 转换成其他类型
- goLang中的基础类型简单应用
- 关于golang中map的key的类型
- 四、golang类型讲解--go语言学习笔记
- 学习Golang语言(4):类型--字符串
- golang-redis之sorted set类型简单操作
- golang 数据类型的转换
- golang 字符 数字 bool 类型
- golang函数——可以为类型(包括内置数据类型)定义函数,类似类方法,同时支持多返回值
- golang 的类型推断
- golang显示数据的类型
- Golang中方法的接受类型与调用类型
- golang常用类型之间的转换
- Golang学习笔记(二):类型、变量、常量
- Golang基本数据类型,常量,标识符