我有一个函数可以给出数字的阶乘
class Integer
def fact
(1..self).reduce(:*) || 1
end
end
我想知道如何使用数学符号调用此方法 阶乘“N!”
我已经尝试过
class Integer
def !
(1..self).reduce(:*) || 1
end
end
还有其他事情,但都不起作用。
最佳答案
您只能重载已经存在的运算符。没有使用 !
作为后缀的 ruby 运算符。
但是,Ruby 确实具有使用 !
作为前缀的逻辑 not
运算符。这实际上是你重载的。
根据您的代码:
!4 # => 24
当然,这是不可取的,但对于重载的一般工作原理有一定的教育意义。
或者,这更接近惯例:
4.! # => 24
关于ruby - 我可以使用数学符号调用(调用)Ruby 阶乘方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23554050/