rune是字符,byte是字节。Go中byte为uint8别名,用于ASCII字符或二进制数据;rune为int32别名,表示Unicode码点,处理中文、emoji等多字节字符需用rune,字符串遍历和字符计数应基于rune避免乱码。

在Go语言中,rune 和 byte 是处理字符与字节时最常遇到的两种类型,它们虽然都用于表示数据单元,但用途和底层含义完全不同。理解它们的区别对正确处理字符串、中文字符和其他多字节文本至关重要。
byte 在Go中其实是 uint8 类型的别名,用来表示一个8位的无符号整数,取值范围是 0 到 255。它通常用于处理原始的二进制数据或ASCII字符。
例如,英文字符 'A' 的ASCII码是65,可以用 byte 表示:
对于只包含ASCII字符的字符串,使用 len(str) 返回的字节数等于字符数。但一旦涉及非ASCII字符(如中文),情况就不同了。
rune 是 Go 中 int32 的别名,用来表示一个Unicode字符(即一个码点)。它可以表示包括中文、 emoji、拉丁扩展字符在内的所有Unicode字符。
Unicode编码支持多字节字符,比如:
Viggle AI Video
Powerful AI-powered animation tool and image-to-video AI generator.
115
查看详情
Go中的字符串默认以UTF-8格式存储,因此一个字符可能由多个字节组成。使用 []rune(str) 可以将字符串正确拆分为字符序列。
看一个例子来理解差异:
str := "Hello, 世界"
fmt.Println("字节数:", len(str)) // 输出: 13("世"和"界"各占3字节)
fmt.Println("字符数:", len([]rune(str))) // 输出: 8(H,e,l,l,o,,, ,世,界)
for i, b := range []byte(str) {
fmt.Printf("%d: %d\n", i, b) // 遍历每一个字节
}
for i, r := range str {
fmt.Printf("%d: %c\n", i, r) // 遍历每一个字符(rune)
}
选择依据是你要处理的是字节流还是字符逻辑:
比如实现一个截取前N个字符的函数,必须基于 rune:
func substr(s string, n int) string {
runes := []rune(s)
if n >= len(runes) {
return s
}
return string(runes[:n])
}
基本上就这些。掌握 byte 和 rune 的本质区别,能避免在处理中文、emoji或多语言文本时出现乱码或截断错误。核心记住:byte 是字节,rune 是字符。
以上就是Golang中的rune与byte类型区别是什么_Golang字符与字节处理详解的详细内容,更多请关注其它相关文章!
# 是一个
# 华为公司网站建设目标
# 乌海网站优化商城在哪
# 桥头公司网站建设哪家好
# 五寨网站建设机构
# 广州网站优化价格
# 晋中关键词排名稳定提升
# google 熊猫4.0 网站优化
# 逆冬白帽seo
# 神马网站推广多少钱一年
# 东营seo招商代理
# 多个
# 二进制数
# go
# 而不是
# 器中
# 遍历
# 的是
# 多字
# AI-powered
# 区别
# 多语言
# 字节
# 编码
# go语言
# golang
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
byrutor直接访问入口 byrutor官方游戏库
PHP utf8_encode 字符编码转换陷阱与解决方案
风车动漫官网首页入口登录 风车动漫在线观看正版地址
C++ priority_queue怎么用_C++优先队列底层实现与自定义比较器
搜狗浏览器如何查找页面中的文字 搜狗浏览器Ctrl+F页面搜索功能
荣耀magicv5怎么上手测评
Eclipse开发J*a快速入门
cad怎么隐藏指定的图层_cad隐藏或冻结图层方法
支付宝登录刷脸不是本人如何解决
AngularJS动态内容中DOM元素查找的时序问题及$timeout解决方案
《万兴喵影》导出视频方法
荣耀Magic7拍照夜景噪点处理_荣耀Magic7相机优化
《kimi智能助手》制作ppt教程
《雷电模拟器》自动点击设置方法
使用Python和GBGB API高效抓取指定日期范围和赛道比赛结果教程
《edge浏览器》关闭翻译功能方法
《tt语音》超级玩家开通方法
铁路12306买票怎么选双人铺 铁路12306卧铺分配规则说明
电脑没有声音了怎么办 电脑声音问题的全面排查与修复指南【详解】
猫眼电影app怎么查询电影院的营业时间_猫眼电影影院营业时间查询教程
Apple Music无故扣费引质疑
Linux如何开发轻量级数据服务模块_Linux服务化设计
自定义你的VS Code状态栏,监控关键信息
Win10显卡驱动安装失败怎么办 Win10使用DDU彻底卸载驱动【解决】
《下一站江湖2》武器获取方法
火狐浏览器如何刷新修复浏览器 火狐浏览器“重置Firefox”功能详解
三星A55应用闪退排查步骤_Samsung A55稳定性优化技巧
CSS如何在页面中引入重置样式_使用Normalize.css或Reset.css统一浏览器默认样式
mysql如何回滚事务_mysql ROLLBACK事务回滚方法
《洛克王国:世界》国家队搭配攻略
VS Code的时间线(Timeline)视图:您的代码时光机
我的世界官方网址入口 我的世界游戏主页直达入口
在J*a中如何实现在线问答与评分系统_问答评分项目开发方法说明
跨语言测试实践:使用Python Selenium测试现有J*a Web项目
rabbitmq 持久化有什么缺点?
OPPO手机参数配置如何开启护眼模式_OPPO手机参数配置护眼模式开启指南
如何在Podman容器中运行Composer_Docker替代品Podman的PHP与Composer容器化实践
Dash应用中自定义HTML页面标题与网站图标(F*icon)的实用指南
《磁力猫》最好用的磁官网
Linux如何优化系统启动流程_Linux启动项优化方案
163邮箱登录入口官网 163.com邮箱登录入口
《新三国志曹操传》游历事件袁尚突围攻略
TikTok视频播放中断怎么办 TikTok播放异常修复方法
三角洲行动2025年9月10日摩斯密码分享
《偃武》甘宁技能详解
如何在vscode中关闭it环境
一点万象签到领积分指南
PHP utf8_encode 字符编码转换疑难解析与最佳实践
作业帮网页版不用下载入口 在线问老师快速答疑
mysql离线安装后如何启动_mysql离线安装完成后启动服务的方法
2025-11-29
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。