是否有可以覆盖的所有ruby运算符的列表?(不是那些不能!)
考虑
class Container
def initialize(value = 0)
@value = value
end
def + (other)
return @value + other
end
def - (other)
return @value - other
end
def * (other)
return @value * other
end
def / (other)
return @value / other
end
def get
return @value
end
end
Run Code Online (Sandbox Code Playgroud)
我想+=用来增加容器中的值,如下所示:
c = Container.new(100)
c += 100
print c.get # Expecting 200
Run Code Online (Sandbox Code Playgroud)
以上将无法正常工作,因为100将覆盖c.
我知道我可以使用像attr_accessora 这样的东西为这个值生成一个getter和setter,但是我很好奇我是否可以用更漂亮的方式来做这件事+=.