如何覆盖类中的+方法以添加同一个类的另一个对象?
下面是我想要做的,但我确定我的语法错误
class Obj
def initialize( value )
@value = value
end
def +( obj_to_add )
@value +( obj_to_add.value )
end
end
o1 = Obj.new( 1 )
o2 = Obj.new( 1 )
puts o1 + o2
答案 0 :(得分:0)
上述代码的主要问题是,您在value
的实施中没有+
的访问者。
同样,返回同一个类的新实例可能更有意义:
class Obj
attr_reader :value
def initialize(value)
@value = value
end
def +(other)
self.class.new(@value + other.value)
end
end
Obj.new(1) + Obj.new(2)
#=> #<Obj:0x007fa9138e0d28 @value=3>