2012-05-10 29 views
3

所以,我一直在寻找了一些早期的代码,发现应该是一个语法错误,这个随机加号,但代码工作得很好,我不知道为什么发现随机加号,没有语法错误

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

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

() ?() : +dist 

所以我失去了什么?

回答

11

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

+0

没错'String s =“test”+3;' – Blundell

3

在这种情况下,加号被用作一元运算符 - 冗余这里,但包含在Java中的同样的方式被认为是你会一元减法运算符,即

int x = -5; 
+0

做'a + + + + + + + b'并获得'a + b'也很有趣 –