考虑
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
我想+=
用来增加容器中的值,如下所示:
c = Container.new(100)
c += 100
print c.get # Expecting 200
以上将不起作用,100
覆盖c
.
我知道我可以使用类似 an 的东西attr_accessor
来生成值的 getter 和 setter,但我很好奇我是否可以用更漂亮的方式来做到这一点,比如使用+=
.