【发布时间】:2014-05-01 06:12:59
【问题描述】:
我明白:
value = (a > b) ? a : b;
等同于:
if (a > b)
value = a;
else
value = b;
但我无法理解这意味着什么:
EDIT(我之前用的例子不好,这是另一个例子的真实代码):
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
: analytics.newTracker(R.xml.ecommerce_tracker);
如何根据if、else if 和else 重写最后一个等式?
【问题讨论】:
-
这是不可编译的声明。
-
好吧,这就是example。也许谷歌写了一些不可编译的东西,但似乎这些机会很渺茫。 编辑 字母
a到d和比较器>是我编造的,但我实际上只是在询问? :。 -
为了扩展@IvanBabanin 所说的,第一个条件意味着
a和b不是boolean变量,但这使得第二个条件的条件不完整。 -
我认为每个人都忽略了实际问题的重点。我只想知道
? :。我已经编辑了示例。 -
一个好的起点是将这样的事情视为嵌套条件:
<condition1> ? <something1> : (<condition2> ? <something2> : (<condition3> ? <something3> : <something4>))
标签: java