3

所以,我查看了一些较早的代码,发现这个随机加号应该是语法错误,但代码运行良好,我不明白为什么

tv_distance.setText("Distance: " + 
        ( dist >= 1000 ? (String.format("%.1f", dist/1000f)) : +dist )
        + " " + metric );

额外的加号位于三元运算符的第三个操作数:

() ? () : +dist

那我错过了什么?

4

2 回答 2

11

dist是一个数字。+只是指定符号。例如,+5总是相同,5但它是合法的。显然,您更熟悉它的反义词,如-5.

于 2012-05-10T20:11:51.880 回答
3

在这种情况下,加号被用作一元运算符 - 这里是多余的,但包含在 java 中的方式与一元减法运算符相同,即

int x = -5;
于 2012-05-10T20:16:21.910 回答