- 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字符,并将其打印出来。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

