2012-06-19 2 views
1

Итак, я пытаюсь определить операторы + и += для класса Ruby, и я стараюсь:Как определить составной оператор в Ruby (например, + =)?

class A 
    def +(x) 
    end 

    def +=(x) 
    end 
end 

Руби любит + но не +=, что дает мне эту ошибку:

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

Что я сделал не так?

+0

'а + = b' ===' а = а + b', нет? –

+0

Семантически, да. Однако Ruby (1.9.3, btw) не любит синтаксис метода оператора, который, как я думал, будет приемлемым, точно так же, как это определено для Fixnums, Strings и Arrays. –

+2

@xuinkrbin. Для любого из этих классов не существует метода '+ =' или любого класса в Ruby. –

ответ

3

Ваш a += b понимается как a = a + b и используется только +. Вам не нужно определить += оператор также

Смежные вопросы