2015-01-28 4 views
-1

Что делает следующий код?Что означает следующий оператор - (? Сделать что-нибудь: что-то сделать)?

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); 
+0

Я не получил этот вопрос в поисковом запросе. Пожалуйста, клонируйте его, а не отметьте его как дубликат. –

ответ

1

condition ? //block1 : //block2 это то же самое, как if (condition) { //block1 } else { //block2 }

+1

За исключением того, что тернарная операция может что-то оценить и, следовательно, будет использоваться в назначениях и т. Д. – Biffen

+0

Это, конечно, правильно. – Dave

0

Ваше выражение должно быть a ? b : c. Это означает: если a, то b. В противном случае выполните c.

У вас есть вложенная версия этого синтаксиса.

Смежные вопросы