2015-04-20 12 views
5
x + y 

è zucchero sintattico perQual è il simbolo del metodo per + = in ruby?

x.send(:+, y) 

Che cosa è questo uno zucchero sintattico per?

x += y 

Ho provato

x.send(:+=, y) 

ma non funziona

+1

Aww, potrei essere corretto ma non credo che ce ne sia uno. – hirolau

+0

'+ =' non è un metodo, è lo zucchero sintattico per tutta la lingua per "aumentare e assegnare". L'override di '+' avrà un impatto automatico '+ ='. – mudasobwa

+2

È un compito abbreviato: http://ruby-doc.org/core-2.2.2/doc/syntax/assignment_rdoc.html –

risposta

5

Non è un metodo. È un modo breve (zucchero sintattico) per scrivere in seguito:

x = 1 
#=> 1 
x += 1 # same as x = x + 1 
#=> 2 
+0

Esiste un metodo =? x.send (: =, 1) non funziona neanche. Pensavo che tutto in Ruby fosse un metodo? – syclee

+3

@syclee '=' è un operatore di assegnazione e non è un metodo in Ruby –

+1

@syclee: come pensi che dovrebbe funzionare? Stai creando 'x' da' x = ... '. Come potresti inviare la chiamata al metodo a qualcosa che non si è ancora creata? –

Problemi correlati