EDIT 1Co się stanie, jeśli usuniesz spację między operatorami + i ++?
ZASTRZEŻENIE: wiem, że+++
nie jest to operator ale +
i ++
operatorzy bez przestrzeni. Wiem też, że nie ma powodu, aby z tego korzystać; to pytanie jest tylko z ciekawości.
Tak, jestem zainteresowany, aby zobaczyć, czy jest wymagana przestrzeń między +
i ++var
w Javie.
Tu jest mój kodu testu:
int i = 0;
System.out.println(i);
i = i +++i;
System.out.println(i);
ten wypisuje:
0
1
który pracuje jako Spodziewam się, tak jakby to była przestrzeń pomiędzy pierwszą i drugą +
.
Następnie próbowałem go z łańcuchów znaków:
String s1 = "s " + ++i;
System.out.println(s1);
// String s2 = "s " +++i;
ten wypisuje:
s 2
Ale jeśli trzecia linia jest komentarzem, kod nie kompiluje, z błędem:
Problem3.java:13: unexpected type
required: variable
found : value
String s2 = "s " +++i;
^
Problem3.java:13: operator + cannot be applied to <any>,int
String s2 = "s " +++i;
^
Co powoduje różnicę w zachowaniu między konkatenacją ciągów a liczbą całkowitą ition?
EDIT 2
Jak omówiono w Abhijit's follow-up question, zasadę, że ludzie wspomnieli (im większa żeton ++ najpierw zostać przeanalizowany, zanim krótszy żeton ++) omówiono w this presentation gdzie wydaje się, nazywać się zasadą Munchy Munchy.
I simmilary i = i +++++ I; jest NIEAKTYWNY, ale i = i ++ + ++ i; JEST. – Jayamohan
Ponieważ nie jest to operator, pytanie, jak to działa, nie ma sensu. To nie jest prawdziwe pytanie. – EJP
Pytanie uzupełniające [Czy '+++' jest tylko przyrostem post-fix, po którym następuje infiks (zawsze)?] (Http://stackoverflow.com/q/15382171/977038) – Abhijit