For loop 使用uint64韩元和x27;停不下来

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,依

有没有解释为什么使用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
,依此类推当
I>=0
时,您的循环将继续,但无符号整数始终大于或等于零。无符号整数不能为负,因此循环永远不会终止

尝试将
i
更改为
int64
,查看其行为是否不同。:-)


祝你好运。

i>=0
时,循环继续,但无符号整数总是大于或等于零。无符号整数不能为负,因此循环永远不会终止

尝试将
i
更改为
int64
,查看其行为是否不同。:-)


祝你好运。

aaah。当然今天在电脑后面太久了。谢谢你。当然今天在电脑后面太久了。谢谢