扩展内置的Integer类时,继续得到相同的错误。
class Integer
def factorial
if self < 0
return 'You can\'t take the factorial of a negative number!'
end
if self <= 1
1
else
self * factorial(self-1)
end
end
end
puts 12.factorial
答案 0 :(得分:1)
你的问题在这里:
self * factorial(self-1)
factorial
是一个实例方法,它不期望任何参数。相反,你应该在self - 1
上调用它,如下所示:
self * (self - 1).factorial
答案 1 :(得分:1)
提示:
def factorial
factorial(self-1)