This question already has answers here:
What is the difference between a += b and a =+ b , also a++ and ++a?

(9个答案)


5年前关闭。




我需要解释这个奇怪的运算符 = + (等于加号)

范例1:
Double a = new Double(5);
Double b = new Double(10);
a += b

结果:
a=15.0
b=10.0

范例2:
Double a = new Double(5);
Double b = new Double(10);
a =+ b

结果:
a=10.0
b=10.0

我理解第一个示例,但是请向我解释这个 = + 运算符在示例2中的操作。

另外一个有趣的事实是,这些运算符是有效且可编译的:
+ =,-=,* =,/ =
但是这两个都不会编译:
= *,= /

最佳答案

=+是赋值操作,之后是一元+。这是完全有效的,发生的是:

a = (+b);

要将变量的负值分配给另一个变量,几乎是一样的:
a = (-b); //a will be assigned with -10

另外,由于没有=*一元运算符,因此*无法编译。

10-07 12:46
查看更多