【发布时间】:2015-02-21 21:16:42
【问题描述】:
所以,我希望这不会编译,它不会:
// the two is inc'd, so reduces symbolically to println(int int)
// which is a compile error
System.out.println(1 ++ 2);
但这确实:
System.out.println(1 + + 2); // returns three
什么给了?不应该也不编译吗?
此外,由于运营商的原因,这个问题很难搜索..
【问题讨论】:
-
++ 是一个增量运算符,因此编译器可能期望在 ++ 之前或之后有一个变量名
-
在第二种情况下,
+是一个“语法糖”运算符(镜像-),它对操作数没有任何作用。 -
“另外,由于操作符的原因,这个问题很难搜索。” 为什么不搜索“Java 操作符”?您将获得一个运算符列表,并列出这些运算符。
-
@Radiodef 因此,一旦您搜索“java 运算符”,您会收到数百个与 Java 使用的数十种运算符组合无关的问题,有没有办法进一步优化搜索?
-
Analogous question in Java 和 C#。你可以走得更远,用
1 + + + + + 2,在C as in Python。