golang rune类型
时间: 2023-07-27 12:11:52 浏览: 39
在 Go 语言中,rune 类型表示 Unicode 码点。Unicode 是一种全球通用的字符编码标准,支持世界上几乎所有的书写系统,包括拉丁字母、希伯来字母、阿拉伯字母、中文汉字等。
rune 类型本质上是 int32 类型的别名,它可以存储任何一个 Unicode 码点。在 Go 中,字符串是由一系列 Unicode 码点构成的,因此 rune 类型通常用来表示单个字符。
例如,我们可以使用 rune 类型来遍历一个字符串,并输出每个字符的 Unicode 码点:
```
s := "hello, 世界"
for _, r := range s {
fmt.Printf("%c -> %U\n", r, r)
}
```
输出结果为:
```
h -> U+0068
e -> U+0065
l -> U+006C
l -> U+006C
o -> U+006F
, -> U+002C
-> U+0020
世 -> U+4E16
界 -> U+754C
```
在这个例子中,我们使用 range 循环遍历字符串 s 中的每个字符,变量 r 的类型为 rune。使用 %U 格式化符号来输出每个字符的 Unicode 码点。
相关问题
golang rune是utf-8吗
在 Golang 中,rune 表示 Unicode 码点,而不是特定的编码方式(比如 UTF-8)。Unicode 定义了每个字符的唯一码点,而 UTF-8 是一种编码方式,用于将 Unicode 码点编码成字节序列。在 Golang 中,使用 string 类型表示字符串,而每个字符串都是由一系列 Unicode 码点组成的,因此 rune 类型通常用于表示字符串中的单个字符。当我们在 Golang 中对字符串进行操作时,Golang 会自动将字符串转换为 Unicode 码点序列进行操作,而不需要我们显式地进行编码和解码。
golang的数据类型
Go语言中的数据类型包括基本数据类型和复合数据类型。
1. 基本数据类型:
- bool:布尔类型,表示真或假。
- uint、uint8、uint16、uint32、uint64:无符号整型,表示正整数。
- float32、float64:浮点型,表示小数。
- complex64、complex128:复数类型,表示实部和虚部都是浮点数的复数。
- byte:字节类型,表示ASCII码的一个字符。
- rune:字符类型,表示一个UTF-8字符。
- string:字符串类型,表示一串字符。
2. 复合数据类型:
- 数组(Array):由固定长度的相同类型元素组成的数据结构。
- 切片(Slice):动态数组,可以根据需要动态增长或缩小。
- 映射(Map):无序的键值对集合。
- 结构体(Struct):由不同类型的字段组成的数据结构。
- 通道(Channel):用于在不同Goroutine之间传递类型化的数据。
- 函数(Function):可以作为变量、参数或返回值的函数。