我有一个函数给我一个数字的阶乘
class Integer
def fact
(1..self).reduce(:*) || 1
end
end
我想知道如何使用数学符号来调用此方法 因子和#34; N'#34;!
我已经尝试了
class Integer
def !
(1..self).reduce(:*) || 1
end
end
和其他事情,但没有一个工作。
答案 0 :(得分:2)
您只能重载已存在的运算符。没有ruby运算符,其中!
用作后缀。
not
作为前缀的逻辑!
运算符。这实际上就是你所超载的。
根据您的代码:
!4 # => 24
当然,这是不可取的,但对于过载如何工作有点教育。
或者,这更接近惯例:
4.! # => 24