我一直在搞乱Ruby(Ruby 1.9.3,IRB 0.9.6(09/06/30)),我正在尝试开发一个复数类。我的initialize
andto_s
方法工作正常。我现在正试图重载四个算术运算符。
我所拥有的是以下内容:
def +(other)
return ComplexNumber.new(@real + other.@real, @imag + other.@imag)
end
但由于某种原因它不喜欢other.@real
;它说
语法错误:意外的 tIVAR
并指向 . 后面的逗号other.@real
。
于是我把它改成了:
def get_values
return [@real, @imag]
end
def +(other)
other_values = other.get_values
return ComplexNumber.new(@real + other_values[0], @imag + other_values[1])
end
虽然这可行,但我觉得这不是正确的方法。我真的不想公开该get_values
方法;难道没有某种方法可以访问同一类的另一个实例的变量吗?