为了账号安全,请及时绑定邮箱和手机立即绑定

没有不可返回的return语句,Go代码不会编译

没有不可返回的return语句,Go代码不会编译

Go
慕尼黑5688855 2021-05-14 18:46:27
这是在Go中查找数字阶乘的程序:func factorial(x uint) uint {    if x == 0 {        return 1    }    return x * (factorial(x - 1))}在输入5上调用时,此函数的输出为120。但是,如果添加一条else语句,则会出现错误。func factorial(x uint) uint {    if x == 0 {        return 1    } else {        return x * (factorial(x - 1))    }}错误 : function ends without a return statement我return在末尾添加了一个:func factorial(x uint) uint {    if x == 0 {        return 1    } else {        return x * (factorial(x - 1))    }    fmt.Println("this never executes")    return 1}然后我得到了120的预期输出。为什么第二种情况会导致错误?为什么在第三种情况下,即使函数从未到达最后一个函数return 1,它仍会计算正确的输出?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信