为了账号安全,请及时绑定邮箱和手机立即绑定

golang `range` 关键字是否会破坏 uint 类型信息?

golang `range` 关键字是否会破坏 uint 类型信息?

Go
扬帆大鱼 2021-09-13 14:50:39
考虑这个 golang 程序:func main() {    one := uint(1)    ones := []uint{1, 1, 1}    for x := range ones {        if x != one {            print("ERR")        }    }}当我尝试编译时出现意外错误:$ go build foo.go # command-line-arguments./foo.go:7: invalid operation: x != one (mismatched types int and uint)为什么 go thinkx有 typeint而不是uint?
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

返回的第一个值range是索引,而不是值。你需要的是:


func main() {

    one := uint(1)

    ones := []uint{1, 1, 1}

    for _, x := range ones {

        if x != one {

            print("ERR")

        }

    }

}


查看完整回答
反对 回复 2021-09-13
  • 1 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信