我和鲁比(Ruby 1.9.3, IRB 0.9.6(09/06/30))和我想开发一个复杂的数字类。我有了 初始化
和 to_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
虽然这样有效, 但我有一种感觉, 它不是正确的方式。 我真的不想曝光 < code> get_ values 方法; 难道没有办法我可以访问同一类中另一个实例的变量吗?