3

だから、私は以前のコードを調べていて、構文エラーであるはずのこのランダムなプラス記号を見つけましたが、コードは正常に機能し、理由がわかりません

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

余分なプラス記号は、三項演算子の3番目のオペランドにあります。

() ? () : +dist

だから私は何が欠けていますか?

4

2 に答える 2

11

distは数字です。は+記号を指定しているだけです。たとえば、+5常に同じですが、5合法です。明らかに、 のように、その反対の方がはるかによく知られてい-5ます。

于 2012-05-10T20:11:51.880 に答える
3

In this case, the plus sign is being used as a unary operator - redundant here, but included in java to be thought of in the same way as you would a unary subtraction operator, i.e.

int x = -5;
于 2012-05-10T20:16:21.910 に答える