相关疑难解决方法(0)

可以覆盖/实现的ruby运算符列表

是否有可以覆盖的所有ruby运算符的列表?(不是那些不能!)

ruby operator-overloading operators

24
推荐指数
1
解决办法
6833
查看次数

我可以在我的班级中实现+ =来增加包含值吗?

考虑

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,但是我很好奇我是否可以用更漂亮的方式来做这件事+=.

ruby

2
推荐指数
1
解决办法
99
查看次数

标签 统计

ruby ×2

operator-overloading ×1

operators ×1