我有这样的代码:为什么返回跳过三元运算符产生的值?
def FirstFactorial(num)
num == 0 ? 1 : num * FirstFactorial(num - 1)
return num
end
然而,结果保持返还原物的说法。我怎样才能返回我的三元运算符创建的结果?
我有这样的代码:为什么返回跳过三元运算符产生的值?
def FirstFactorial(num)
num == 0 ? 1 : num * FirstFactorial(num - 1)
return num
end
然而,结果保持返还原物的说法。我怎样才能返回我的三元运算符创建的结果?
您需要设置num等于三元运算符的结果。或者像Elyasin的回答那样回报它。
def FirstFactorial(num)
num = num == 0 ? 1 : num * FirstFactorial(num - 1)
return num
end
编辑: 虽然,记得在红宝石返回的最后一行的结果,所以你可以只说:
def FirstFactorial(num)
num == 0 ? 1 : num * FirstFactorial(num - 1)
end
只是为succint答案添加尽可能为后人的缘故:
Ruby在方法声明的最后一行使用隐式返回。
这样:
def FirstFactorial(num)
num == 0 ? 1 : num * FirstFactorial(num - 1)
end
回报应该感到羞耻! – user12341234
啊!简单一点,谢谢你的帮助:) – Shawn
你有太多等号..'NUM = 0? 1:num ....' – Buddy