【发布时间】:2017-12-02 10:04:05
【问题描述】:
我有一个 ADT(抽象数据类型),为此我编写了一个方法 +(other)。
+(other) 返回一个新的 ADT。
如果我像这样使用它:
adt += otherAdt
它将被覆盖adt。
但现在我想写一个名为 +=(other) 的方法来更改 adt 而不是创建一个新的。
我尝试将我的方法命名为 +=(other) 并得到一个错误。
我的替代方法是将其命名为 plus=(other)。
我知道如果我有两个数组 aArr 和 bArr 并写:
aArr += bArr
aArr 是一个包含 aArr 和 bArr 元素的新数组,因此具有新的 Object-ID。
那么,有没有办法在 Ruby 中覆盖 +=、-=、*= 和 *=?
如果是这样,它会是什么样子?
编辑:我在@Mladen Jablanović 的回答下面问了一个问题。
【问题讨论】:
标签: ruby math methods operator-keyword overwrite