2012-04-05 16 views
2

Ich gehe durch ein Ruby-Tutorial und ich kann die + = Anweisung nicht verstehen. Google hilft nicht, "Ruby + =" sucht nur nach "Ruby".Was bedeutet "+ =" (plus gleich) in Ruby?

Hilfe ist willkommen.

Probe:

num = -10 
num += -1 if num < 0 
puts num 
#=> -11 
+0

'a + = 1' ist das gleiche wie' a = a + 1' '+ =' ist nur eine kurze Form. –

+2

I _hate_ post-conditions, Code sollte gelesen werden wie (Englisch) Text, von links nach rechts und nach unten. Verdammt Du Verdammnis, Perl :-) – paxdiablo

+0

(Versuche ein Tutorial; auf jeden Fall ist das Stichwort "operator", von dem es eine endliche Menge gibt und die Regeln gut abgedeckt sind.) –

Antwort

4
num += -1 

ein Äquivalent

num = num + -1 

oder für dieses Beispiel

num = num - 1 

was wiederum kann als

geschrieben werden
num -= 1 
+0

Beachten Sie auch das fast jeder Operator kann mit '=' kombiniert werden: '&& =', '|| =', '& =', '| =', '* =', '/ =', und so weiter. Siehe "Zuweisung" in [diese Tabelle von der Spitzhacke] (http://phrogz.net/programmingruby/language.html#table_18.4). –

0

Es macht zwei Dinge gleichzeitig.

(1) Es fügt + 1 bis num (2) das Ergebnis

Die für eine Verknüpfung auf Anzahl Ordnet zurück:

num = num + 1

0

Das Segment a += b ist nur die Kurzform für a = a + b. So Ihre Aussage:

num += -1 if num < 0 

einfach ein subtrahiert (von -1 Zugabe, die ist ... urig, das ist wahrscheinlich so höflich wie ich sein kann) von num, wenn es bereits negativ ist (wenn num < 0) ..