免責聲明:我知道+++
是不是一個真正的運營商但+
和++
運營商沒有空格。我也知道沒有理由使用它;這個問題只是出於好奇。
所以,我很感興趣,看看在Java中需要+
和++var
之間的空間。
這裏是我的測試代碼:
int i = 0;
System.out.println(i);
i = i +++i;
System.out.println(i);
此打印出:
0
1
爲我所期望的,就像如果有第一和第二+
之間的空間,其工作原理。
然後,我用字符串連接試了一下:
String s1 = "s " + ++i;
System.out.println(s1);
// String s2 = "s " +++i;
這會打印出:
s 2
但如果第三行是註釋掉的代碼不能編譯,與錯誤:
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;
^
什麼導致字符串連接和整數加法之間的行爲差異銀行足球比賽?
編輯2
如(前較短令牌++較大令牌++中進行第一解析,)在Abhijit's follow-up question討論的那樣,人們已經提到的規則在this presentation地方出現討論被稱爲Munchy Munchy規則。
而simmilary I = I +++++我;是無效的,但我=我+ + +我; IS。 – Jayamohan 2013-03-13 06:57:39
因爲它不是一個操作員,所以問它是如何工作的沒有意義。不是一個真正的問題。 – EJP 2013-03-13 09:08:27
後續問題[是'+++'它只是一個後綴增量後跟一箇中綴(總是)?](http://stackoverflow.com/q/15382171/977038) – Abhijit 2013-03-13 10:22:30