2011-10-03 11 views
29

Sto facendo alcuni esercizi di rubino e ho detto che ho bisogno di tornare indietro e riscrivere la sceneggiatura con le notazioni stenografiche +=.Che cosa significa "+ =" (più uguali)?

Questo esercizio riguarda principalmente l'apprendimento di nuovi metodi. Il problema è che non ho idea di cosa significa += quando ho provato a cercarlo online.

+0

Possibile duplicato di [Che cosa significa "+ =" (più uguali) in Ruby?] (Http://stackoverflow.com/questions/10022524/what-does-plus-equals-mean-in-ruby) – Li357

risposta

2

Non un esperto di rubini, ma penserei che si accoda a una stringa esistente o incrementi una variabile numerica?

55

+= è un operatore di stenografia.

someVar += otherVar 

è lo stesso di

someVar = someVar + otherVar 
+0

Grazie mille per il tuo aiuto Apprezzo la risposta rapida. –

+5

E 'someVar = someVar + otherVar' è uguale a' someVar = someVar. + (OtherVar) '. Sentiti libero di scrivere la tua classe e implementa '+' su di essa, e anche tu puoi avere la magia '+ ='! –

+0

Si noti che è necessario (probabilmente) restituire 'self' nella funzione' + 'per rendere' + = 'funzionante come previsto. – rdvdijk

1

Si dovrebbe cercare un buon libro su Ruby, per esempio http://pragprog.com/book/ruby3/programming-ruby-1-9

Le prime 150 pagine coprono la maggior parte delle cose di base su Ruby.

str = "I want to learn Ruby" 

i = 0 
str.split.each do |word| 
    i += 1 
end 

puts "#{i} words in the sentence \"#{str}\"" 

    => 5 words in the sentence "I want to learn Ruby" 
14

Espressioni con operatori binari della forma:

x = x op y 

può essere scritta come:

x op= y 

Per esempio:

x += y # x = x + y 
x /= y # x = x/y 
x ||= y # x = x || y (but see disclaimer) 

Tuttavia, sappiate che ||= e &&= possono comportarsi leggermente ... in modo diverso (il più evidente se usato in combinazione con un indicizzatore hash). Un sacco di domande su questa stranezza.

Felice codifica.