私はrubyのクラスNumeric
のために2つの単項演算子演算子!
と!!
を作りたいと思います。私はそれがこれまでのように定義された後置単項演算子をオーバーロード/作成できますか?
class Numeric
def !
(1..self).inject(:*)
end
def !!
if self.even?
(2..self).step(2).inject(:*)
else
(1..self).step(2).inject(:*)
end
end
end
しかし、これは私が5.!
と5.!!
を呼び出す必要があることを意味しています。私は[email protected]
と[email protected]
のような単項接頭演算子を定義できますが、5.!
と5.!!
の代わりに5!
と5!!
を呼び出すことができるかどうかはわかりませんでした。
私は '!'が有効なメソッド名であることを知りませんでした。 – ndn