登录
首页 >  Golang >  Go问答

for循环在使用uint64时无限循环

来源:stackoverflow

时间:2024-02-28 08:09:24 245浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《for循环在使用uint64时无限循环》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

有没有解释为什么使用 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)
  }
}

我希望这个函数在输出 step 0 处停止,但它会溢出 int 并永远继续 step 18446744073709551615 等等


解决方案


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

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

祝你好运。

以上就是《for循环在使用uint64时无限循环》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>