BEARBEITEN 1
HAFTUNGSAUSSCHLUSS: Ich weiß, dass +++
nicht wirklich ein Operator ist, sondern die Operatoren +
und ++
ohne Leerzeichen. Ich weiß auch, dass es keinen Grund gibt, das zu benutzen; Diese Frage ist nur aus Neugier.
Es interessiert mich also, ob der Abstand zwischen +
und ++var
in Java benötigt wird.
Hier ist mein Testcode:
%Vor%Dies druckt:
%Vor% was wie erwartet funktioniert, so als ob zwischen dem ersten und zweiten +
ein Leerzeichen wäre.
Dann habe ich es mit String-Verkettung versucht:
%Vor%Dies druckt:
%Vor%Aber wenn die dritte Zeile unkommentiert ist, kompiliert der Code nicht mit dem Fehler:
%Vor%Was verursacht den Unterschied im Verhalten zwischen String-Verkettung und Ganzzahl-Addition?
BEARBEITEN 2
Wie in diskutiert, folgt Abhijit -up-Frage , die Regel, die von den Leuten erwähnt wurde (das größere Token ++ wird zuerst geparst, bevor das kürzere Token ++), wird in diese Präsentation , in der die Regel Munchy Munchy zu stehen scheint.
Der Compiler erzeugt beim Analysieren der Quelle die längsten möglichen Token. Wenn er auf +++ trifft, wird er als ++ + verwendet.
Also der Code von
%Vor%Wird immer gleich wie
sein %Vor% Es gibt keinen Operator +++
. Was Sie dort haben, ist ein postfix ++
Operator gefolgt von einem Infix +
Operator. Das ist ein Kompilierungsfehler, weil postfix ++
nur auf eine Variable angewendet werden kann und "s "
keine Variable ist.
Da Sie wirklich einen infix +
Operator gefolgt von einem Präfix ++
Operator meinen, müssen Sie den Abstand zwischen den Operatoren angeben.
Eigentlich solltest du es sowieso tun. +++
ist ein Verbrechen gegen die Lesbarkeit !!!
Das Triple Plus ist kein Operator selbst, es sind zwei Operatoren kombiniert:
Was das Triple plus tatsächlich tut, ist:
a +++ 1 == a ++ + 1;
Was Sie versuchen, ist ++ eine Zeichenfolge, die nicht definiert ist.
Benutze niemals +++ ohne Leerzeichen in deinem Code; kaum jemand wird wissen, was es tut (ohne Web-Beratung). Außerdem, nach einer Woche oder so, werden Sie nicht wissen, was es selbst tut.
+++
ist kein Operator für sich.
i = i +++i;
ergibt einen pre-increment -Wert von i
, fügt ihn dann zum Wert von i
hinzu und speichert ihn in i
.
Mit der Zeichenfolge +
ist keine Addition gemeint, also versuchen Sie, die Zeichenfolge und die ganze Zahl miteinander zu verketten.
Tags und Links java integer string-concatenation operators addition