我有这段代码:
def FirstFactorial(num)
num == 0 ? 1 : num * FirstFactorial(num - 1)
return num
end
但是,结果会一直返回原始参数。如何返回由我的三元运算符创建的结果?
答案 0 :(得分:2)
它返回参数,因为你被告知要这样做。试试这个。
def FirstFactorial(num)
return (num == 0 ? 1 : num * FirstFactorial(num - 1))
end
答案 1 :(得分:2)
为后人添加尽可能简单的答案:
Ruby在方法声明的最后一行使用隐式返回。
因此:
def FirstFactorial(num)
num == 0 ? 1 : num * FirstFactorial(num - 1)
end
答案 2 :(得分:1)
您需要将num设置为等于三元运算符的结果。或者按照Elyasin的回答再回来。
def FirstFactorial(num)
num = num == 0 ? 1 : num * FirstFactorial(num - 1)
return num
end
编辑: 虽然,请记住,在ruby中返回最后一行的结果,所以你可以说:
def FirstFactorial(num)
num == 0 ? 1 : num * FirstFactorial(num - 1)
end