• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

go语言循环卡死

9604a3b72d92b876 2020-05-15 浏览量:623

使用go语言:

    var i byte
    go func() {
        for i = 0; i <= 255; i++ {
        }
    }()
​运行这段代码必然卡死,我认为和byte有关,不知道大家怎么看?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以加调试打印:可以发现i不断从0~255循环。

    go语言里面,byte类似c语言里面unsigned char,取值范围就是0~FF,达到255后再加1就变回0。仍然符合i<=255的要求,所以循环继续,无限循环造成类似卡死的效果。

    非常有意思的是,即使加了溢出异常,这个问题也不会修复。

    • 发布于 2020-05-19
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • byte去掉用分号代替试试看呢,不资道你的byte是干嘛用的,这是关键词,还有最后那个括号也去掉,i++后面要有分号
    • 发布于2020-05-16
    • 举报
    • 评论 1
    • 0
    • 0
9604a3b72d92b876 回复了 yhj416606438 :抱歉,我用的是golang。 回复

  • 这个i是byte型的,也就是说它长度只能是一个字节,那你这个循环自然永远满足i<=255

    你试下将255改为254

    • 发布于2020-05-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

go语言循环卡死