我刚才注意到,当我将代码片段中的最后一行从potential =+ rep_pot
更改为potential = potential + rep_pot
时,我会得到完全不同的行为。有谁知道为什么会这样?
double potential = euclideanDistance(i, goal);
for (IntPoint h: hits){
double dist = euclideanDistance(i, h);
double a = range - dist;
double rep_pot = (Math.exp(-1/a)) / dist;
potential =+ rep_pot;
}
答案 0 :(得分:1)
Java中没有=+
运算符。有关所有合法运营商,请参阅Java Language Specification。
=+
是两个运算符:=
后跟+
。
答案 1 :(得分:1)
那是因为
potential = potential + rep_pot
类似于
potential += rep_pot
和
potential =+ rep_pot;
与
相同potential = rep_pot;
答案 2 :(得分:1)
你可能意味着+=
。在您的情况下,它被解释为x = +x
x = x
使用+=
:
potential += rep_pot;
答案 3 :(得分:1)
是的,因为这两件事并不相同。
potential =+ rep_pot;
在这里,我们有可能分配表达式'unary plus rep_pot'
的值你想写的东西看起来不一样:
potential += rep_pot;
这相当于
potential = potential + rep_pot;