这是在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
提交
取消