所以,我正在查看一些早期代码并发现这个随机加号应该是一个语法错误,但代码工作正常,我不明白为什么
tv_distance.setText("Distance: " +
( dist >= 1000 ? (String.format("%.1f", dist/1000f)) : +dist )
+ " " + metric );
额外加号位于三元运算符的第三个操作数:
() ? () : +dist
那我缺少什么?
答案 0 :(得分:11)
dist
是一个数字。 +
只是指定了标志。例如,+5
始终与5
相同,但它是合法的。显然,你对它的反面要熟悉得多,如-5
。
答案 1 :(得分:3)
在这种情况下,加号被用作一元运算符 - 这里是冗余的,但是包含在java中的方式与一元减法运算符的方式相同,即
int x = -5;