Есть ли kotlin эквивалент оператора?: java? - PullRequest
0 голосов
/ 19 февраля 2020

Неохотно kotlin newb ie здесь.

Существует ли kotlin эквивалент оператора?: java operator?

Я попытался выполнить поиск в Google. Большинство результатов говорят о?: (Оператор Элвиса) в kotlin.

Ищите способ написать это в kotlin:

//java example
//return condition ? a : b;

Ответы [ 4 ]

3 голосов
/ 19 февраля 2020

kotlin не имеет троичного оператора, но вы можете использовать if, when, try catch как выражение

return if (condition) a else b
2 голосов
/ 19 февраля 2020

Эквивалент Kotlin:

if (a) b else c

Это самый близкий к Java, который вы можете получить в этой точке.

2 голосов
/ 19 февраля 2020

? : является оператором tenary , которого в настоящее время нет в Kotlin. Есть несколько обсуждений о добавлении этого оператора к языку, например KT-5823 Поддержка троичного условного оператора 'foo? a: b '.

Обычно предлагается использовать оператор if в качестве замены.

1 голос
/ 19 февраля 2020

Самый хороший способ сделать это это:

return when {
    condition -> a 
    else -> b
} 
...