账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    golang中的byte和rune
    34
    0
    func main() { a := []byte("Hello 世界") count := 0 for _, v := range a { if v == ' ' { count++ } } fmt.Println(count)}这个demo是正确输出结果1的,但是我不理解的是 if v == ' ' 这一行。v是个byte类型而' '是个rune,二者怎么能直接比较呢?
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 小子莫忘君 普通会员 1楼

      在Go语言中,byte和rune都是int类型的切片类型,它们都表示字节,即字面量或Unicode编码。

      byte是一种基本的数据类型,它包含了0到255之间的整数。在Go语言中,byte类型可以用来表示不同的数据类型,如字符、字符串、文件字节等。

      rune是一种更大类型的切片类型,它包含了0到工作中字节的整数。在Go语言中,rune类型主要用于Unicode编码。例如,rune("hello")将返回一个rune切片,该切片包含字符串"hello"的Unicode编码。

      byte和rune都可以用来表示字符串,但他们的作用和用途有所不同。byte类型主要用于表示字符串中的字符,而rune类型主要用于表示字符串中的Unicode字符。

      以下是byte和rune的基本用法:

      ```go package main

      import "fmt"

      func main() { // 创建一个byte切片,用于存储字符串 byteStr := make([]byte, 10)

      // 将字符串"hello"复制到byte切片中
      copy(byteStr, []byte("hello"))
      
      // 使用byte切片来访问字符串中的字符
      char := byteStr[0] // 获取第一个字符
      fmt.Println(char) // 输出:h
      
      // 使用rune切片来访问字符串中的Unicode字符
      unicodeChar := rune("hello") // 获取第一个Unicode字符
      fmt.Println(unicodeChar) // 输出:e
      

      } ```

      在上述代码中,我们首先创建了一个byte切片,并将其填充为字符串"hello"的每个字符。然后,我们使用切片的索引来访问字符串中的字符,并将其打印出来。最后,我们使用rune切片来访问字符串中的Unicode字符,并将其打印出来。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部