有沒有解釋為什么使用 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 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消