使用 ruby,我可以重载函数中的运算符。我想知道我是否可以以某种方式超载优先级(允许作弊)。例如:
class Odd
attr_accessor :value
def initialize(value)
@value = value
end
def +(odd)
Odd.new(@value - odd.value)
end
def *(odd)
Odd.new(@value / odd.value)
end
end
a = Odd.new(5)
b = Odd.new(5)
c = Odd.new(5)
puts (a + b * c).value
4
由于优先级,此脚本打印。我怎样才能0
通过先计算总和然后计算乘法来打印它?