我明白那个:
value = (a > b) ? a : b;
Run Code Online (Sandbox Code Playgroud)
是相同的:
if (a > b)
value = a;
else
value = b;
Run Code Online (Sandbox Code Playgroud)
但我无法破译这意味着什么:
编辑(我之前使用的例子并不好,这是另一个例子中的真实代码):
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);
Run Code Online (Sandbox Code Playgroud)
如何重写了最后方程式来讲if,else if和else?
mar*_*nas 11
您需要第二个条件才能使此三元表达式起作用.
value = (a > b) ? a : (b > c) ? c : d;
Run Code Online (Sandbox Code Playgroud)
然后它会变成:
if (a > b) {
value = a;
} else if (b > c) {
value = c;
} else {
value = d;
}
Run Code Online (Sandbox Code Playgroud)
在你的情况下:
if (trackerId == TrackerName.APP_TRACKER) {
t = analytics.newTracker(PROPERTY_ID);
} else if (trackerId == TrackerName.GLOBAL_TRACKER) {
t = analytics.newTracker(R.xml.global_tracker);
} else {
t = analytics.newTracker(R.xml.ecommerce_tracker);
}
Run Code Online (Sandbox Code Playgroud)
资源:
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);
Run Code Online (Sandbox Code Playgroud)
您似乎习惯于生产value = (a > b) ? a : b ? c : d;,这可能更像value = (a == b) ? c : (a == d) ? e : f,它会读取类似......
Tracker t = null;
if (trackerId == TrackerName.APP_TRACKER) {
t = analytics.newTracker(PROPERTY_ID);
} else if ((trackerId == TrackerName.GLOBAL_TRACKER)) {
t = analytics.newTracker(R.xml.global_tracker);
} else {
t = analytics.newTracker(R.xml.ecommerce_tracker);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3905 次 |
| 最近记录: |