PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was bedeutet "=+"


Gast
2009-12-06, 00:48:37
Der Operator "+=" ist eine Abkürzung für:

"x += y" <=> "x = x + y"

Was macht aber "=+"? Als Operator wird der Ausdruck nirgends erwähnt und wenn ich mal testweise damit rumspiele, kommt als Ergebnis von "x =+ y" immer "x = y" raus, also eine gewöhnliche Zuweisung, aber das Ding befindet sich doch nicht zum Spaß in Codeschnippseln, wenn's nur eine einfache Zuweisung wäre?

Gast
2009-12-06, 00:49:12
Ach ja, wir reden von Java.

Marscel
2009-12-06, 01:03:30
Abgeleitet von anderen Sprachen würde ich darauf tippen, dass es sich dabei ganz banal um die Fixierung eines Vorzeichens handelt.

Gast
2009-12-06, 01:14:08
Habe ich auch vermutet, leider falsch.

int x = 3;
int y = -5;

x =+ y;

System.out.println(x);

liefert -5.

Gast
2009-12-06, 01:18:44
Nichtmal auf der Sun-Seite wird "=+" erwähnt: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html :|

Laz-Y
2009-12-06, 01:29:22
Ein x =+ 5 interpretier ich als Zuweisung von "+5" zu x. Hat also nichts mit dem Operator += zu tun. Sprich da ist nur das leerzeichen ungünstig gesetzt.
Bitte korrigiert mich, wenn das falsch ist.

Neomi
2009-12-06, 01:51:36
liefert -5.

Klar. Mit + wird das Vorzeichen nicht auf positiv geändert, sondern beibehalten, genau wie - das Vorzeichen invertiert, statt es auf negativ zu setzen. Sieh einfach +y als +1 * y und äquivalent -y als -1 * y. Für eine Fixierung auf ein gewünschtes Vorzeichen muß man das vor den Betrag setzen, nicht vor den Originalwert.

samm
2009-12-06, 01:53:06
Habe ich auch vermutet, leider falsch.

int x = 3;
int y = -5;

x =+ y;

System.out.println(x);

liefert -5.
Stimmt trotzdem: wird das "+" als Vorzeichen verstanden, ist das +(-5), also -5 ;) (Erklärung: -x = (-1)*x, dementsprechend ist +x = 1*x, und +(-5) ist 1*(-5) = -5)

[edit]chillischote beat me to it...

Gast
2009-12-06, 02:44:22
Toll, gescheitert an 3. Klasse Mathematik. Ich sollte mich schlafenlegen. :usad:

Coda
2009-12-06, 02:57:26
Es gibt keinen "=+"-Operator. Das was da steht ist für den Parser einfach "= +"

Wobei "+y" einfach y ist. Das unäre Plus ist in C nur da um Symmetrie zu haben.

Gast
2009-12-06, 03:19:19
Dann macht der Ausdruck theoretisch auch gar keinen Sinn? Wenn ich vor einer positiven Zahl "+" hinschreibe, bleibt sie positiv und bei einer negativen Zahl bleibt sie negativ. Wo ist denn der Sinn davon, sowas in Java zu schreiben (mit "-" macht's dann natürlich Sinn)?

Neomi
2009-12-06, 03:29:04
Wie Coda schon gesagt hat, Symmetrie. Es ist einfach ein Operator, der nichts tut*, aber eben das Gegenstück zu - ist. "Nichts tun" bedeutet konkreter "Vorzeichen nicht invertieren", was halt das Gegenteil von "Vorzeichen invertieren" ist. Kann man quasi dann einsetzen, wenn der Code damit besser lesbar ist.

* Es sei denn, man hat ihn für eigene Typen anders definiert, wenn man Operatoren in der jeweiligen Sprache überladen kann.