考虑这个 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")
}
}
}
- 1 回答
- 0 关注
- 190 浏览
添加回答
举报
0/150
提交
取消