For loop 使用uint64韩元和x27;停不下来
有没有解释为什么使用uint64的for循环不会在0处停止 我已经用int尝试了同样的for循环,它的效果与预期的一样For loop 使用uint64韩元和x27;停不下来,for-loop,go,For Loop,Go,有没有解释为什么使用uint64的for循环不会在0处停止 我已经用int尝试了同样的for循环,它的效果与预期的一样 package main import ( "fmt" ) func main() { i := uint64(5) for ; i>=uint64(0); i-- { fmt.Printf("step %d\n", i) } } 我希望此函数在输出步骤0时停止,但它会溢出int,并永远继续执行步骤18446744073709551615,依
package main
import (
"fmt"
)
func main() {
i := uint64(5)
for ; i>=uint64(0); i-- {
fmt.Printf("step %d\n", i)
}
}
我希望此函数在输出
步骤0
时停止,但它会溢出int,并永远继续执行步骤18446744073709551615
,依此类推当I>=0
时,您的循环将继续,但无符号整数始终大于或等于零。无符号整数不能为负,因此循环永远不会终止
尝试将i
更改为int64
,查看其行为是否不同。:-)
祝你好运。当
i>=0
时,循环继续,但无符号整数总是大于或等于零。无符号整数不能为负,因此循环永远不会终止
尝试将i
更改为int64
,查看其行为是否不同。:-)
祝你好运。aaah。当然今天在电脑后面太久了。谢谢你。当然今天在电脑后面太久了。谢谢