有没有解释为什么使用 uint64 的循环不会在 0 处停止?我用 int 尝试了相同的 for 循环,它按预期工作。package mainimport ( "fmt")func main() { i := uint64(5) for ; i>=uint64(0); i-- { fmt.Printf("step %d\n", i) }}我希望这个函数在输出时停止step 0,但它会溢出 int 并永远继续下去step 18446744073709551615等等
1 回答
慕哥9229398
TA贡献1877条经验 获得超6个赞
您的循环继续 while i >= 0
,但无符号整数始终大于或等于零。无符号整数不能为负数,因此您的循环永远不会终止。
尝试更改i
为int64
并查看其行为是否有所不同。:-)
祝你好运。
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报
0/150
提交
取消