go中字符类型

Go 语言中的字符类型主要有两种:

  1. byte (uint8 的别名)
  • 用于表示 ASCII 字符
  • 占用 1 个字节
  • 用单引号表示,如 'a'
  1. 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)
}

需要注意的是:

  1. Go 语言的字符串底层是字节序列
  2. 处理中文等非 ASCII 字符时,应该使用 rune 类型
  3. 使用 range 遍历字符串时会自动按 rune 解码
  4. 直接用下标访问字符串得到的是字节

这样的设计让 Go 能够很好地处理各种字符集的文本。通过 rune 类型,我们可以方便地处理 Unicode 字符,而 byte 类型则用于处理 ASCII 字符和底层字节操作。

posted @ 2025-02-12 10:43  仁义礼智信的  阅读(0)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 开源的 DeepSeek-R1「GitHub 热点速览」
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
点击右上角即可分享
微信分享提示