Я хотел бы создать два оператора унарного постфикса !
и !!
для класса Numeric
в рубине. У меня он определил, как это до сих порМогу ли я перегрузить/создать постфиксный унарный оператор?
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