尝试在Ruby中扩展内置的Integer类时出错1错0

时间:2015-12-03 16:04:22

标签: ruby

扩展内置的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

2 个答案:

答案 0 :(得分:1)

你的问题在这里:

self * factorial(self-1)

factorial是一个实例方法,它不期望任何参数。相反,你应该在self - 1上调用它,如下所示:

self * (self - 1).factorial

答案 1 :(得分:1)

提示:

  • def factorial
  • factorial(self-1)