2012-06-19 2 views
1

그래서, 루비 클래스의 운영자 ++=을 정의하기 위해 노력하고 내가 시도 :Ruby에서 복합 연산자를 정의하는 방법 (예 : + =)?

class A 
    def +(x) 
    end 

    def +=(x) 
    end 
end 

루비가 + 아니라 += 좋아, 나에게이 오류 제공 :

syntax error, unexpected '=', expecting ';' or '\n'

을 나는 무엇을 잘못 했는가?

+0

의'+ = b' ==='A = A + b' 루비에 할당 연산자를 오버로드 할 수 없습니다 += 연산자를 정의하지 않은, 아니? –

+0

의미 상으로, 그렇습니다. 그러나 Ruby (1.9.3, btw)는 Fixnums, Strings 및 Arrays에 대해 정의 된 것처럼 연산자 메서드 구문이 맘에 들지 않습니다. –

+2

@xuinkrbin. 이 클래스들에 대해서는'+ ='메소드가 없으며, Ruby 클래스에 대해서는'+ ='메소드가 없다. –

답변

3

a += ba = a + b으로 해석되며 + 연산자 만 사용됩니다. 또한

관련 문제