go中字符类型
Go 语言中的字符类型主要有两种:
- byte (uint8 的别名)
- 用于表示 ASCII 字符
- 占用 1 个字节
- 用单引号表示,如 'a'
- rune (int32 的别名)
- 用于表示一个 Unicode 码点(code point)
- 占用 4 个字节
- 用单引号表示,如 '中'
- 用于处理中文、日文等 UTF-8 编码的字符
示例代码:
// byte 类型
var b byte = 'a'
fmt.Printf("%T, %v\n", b, b) // uint8, 97
// rune 类型
var r rune = '中'
fmt.Printf("%T, %v\n", r, r) // int32, 20013
// 字符串遍历
str := "hello 世界"
// 按字节遍历
for i := 0; i < len(str); i++ {
fmt.Printf("%c ", str[i])
}
// 按 rune 遍历
for _, c := range str {
fmt.Printf("%c ", c)
}
需要注意的是:
- Go 语言的字符串底层是字节序列
- 处理中文等非 ASCII 字符时,应该使用 rune 类型
- 使用 range 遍历字符串时会自动按 rune 解码
- 直接用下标访问字符串得到的是字节
这样的设计让 Go 能够很好地处理各种字符集的文本。通过 rune 类型,我们可以方便地处理 Unicode 字符,而 byte 类型则用于处理 ASCII 字符和底层字节操作。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 开源的 DeepSeek-R1「GitHub 热点速览」
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)