Kotlin - Неожиданные токены (используйте «;» для разделения выражений в одной строке) с троичным оператором в лямбда-функции - PullRequest
0 голосов
/ 11 февраля 2020

Я получил ошибку Unexpected tokens Ошибка лямбда-функции при попытке запустить этот код :

fun main() {
    val oddOrEven = { number: Int -> (number % 2 == 0) ? "Even" : "Odd" }
    print(oddOrEven(2))
}

1 Ответ

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

В Kotlin нет троичного оператора. Смотрите обсуждение здесь .

if в Kotlin - это выражение (поэтому оно может возвращать значение), и вы можете сделать что-то вроде этого:

fun main() {
  val oddOrEven = { number: Int -> if(number % 2 == 0) "Even" else "Odd" }
  println(oddOrEven(2))
}

Существует специальный оператор:

val x = if (y == null) -1 else x

Выше можно сократить до:

val x ?: -1

Это называется оператором Элвиса - если значение равно null, оно возвращает другое значение (-1 в данном случае)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...