给定以下代码片段:
int i = 0;
int y = + ++i;
System.out.println(y);
结果是 1。为什么这是一个有效的声明?谁能解释一下 =+ 是什么?
给定以下代码片段:
int i = 0;
int y = + ++i;
System.out.println(y);
结果是 1。为什么这是一个有效的声明?谁能解释一下 =+ 是什么?
int y = + ++i;
此行中的第一个+
只是一元运算+
符(请参阅:赋值、算术和一元运算符)。它什么也不做。它类似于一元运算-
符。上面的行相当于:
int y = ++i;
它递增i
然后分配i
to的新值y
。
这里+
表示该值是否为正,即unary
运算符,如果您将值更改为,-
则答案将为-1
。即int y = - ++i;
会给-1
。
等号后面的第一个加号是值的符号。所以这意味着它是一个正数。
int y = - ++i;
会回来-1
Java 保证 它会被评估left-to-right
。具体来说,++higher precedence
比 +。所以它首先绑定这些,然后将加法操作从左到右关联起来