您的位置:首页 >Golang中rune和byte的区别详解
发布于2025-09-29 阅读(0)
扫一扫,手机访问
rune用于处理Unicode字符,byte用于ASCII或字节操作;中文等多字节字符用rune才能准确计数和遍历。

在Go语言中,rune 和 byte 是两个常用于处理字符和字符串的类型,但它们的用途和底层表示有明显区别。理解它们的不同,对正确处理文本(尤其是中文等多字节字符)非常重要。
byte 实际上是 uint8 的别名,用来表示 8 位无符号整数,取值范围是 0 到 255。它通常用于处理 ASCII 字符或原始字节数据。
例如,英文字符 'A' 的 ASCII 码是 65,可以用 byte 表示:
[]byte(str) 或 range 得到的是每个字节rune 是 int32 的别名,用来表示一个 Unicode 字符(即一个码点)。它可以正确表示包括中文、emoji 等在内的任何 Unicode 字符。
例如,汉字“你”的 Unicode 码点是 U+4F60,需要用 rune 才能准确表示。
[]rune(str) 可以将字符串转为 Unicode 码点切片看一个例子更容易理解:
str := "你好, world!" fmt.Println(len(str)) // 输出: 13 (字节数) fmt.Println(len([]rune(str))) // 输出: 9 (字符数,包含中文)
len(str) 返回字节数,因为字符串底层是字节序列[]rune(str) 才能得到真正的“字符个数”基本上就这些。简单说:处理 ASCII 或二进制数据用 byte,处理国际化文本、中文、emoji 用 rune,避免乱码和长度误判。
上一篇:情感类小红书运营怎么样?怎么做?
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9