如何在Ruby中定义复合运算符(例如+ =)?

时间:2012-06-19 18:43:42

标签: ruby operators

所以,我试图为Ruby类定义运算符++=,然后尝试:

class A
    def +(x)
    end

    def +=(x)
    end
end

Ruby喜欢+但不喜欢+=,这给了我这个错误:

  

语法错误,意外'=',期待';'或'\ n'

我做错了什么?

2 个答案:

答案 0 :(得分:3)

您的a += b被解释为a = a + b,并且仅使用+运算符。您还不必定义+=运算符

答案 1 :(得分:3)

你不能在ruby中重载赋值运算符

Overloading Operators - Ruby