Выбор ответа Junior Основы языка спрашивают часто обновлено

Почему в Kotlin нет тернарного оператора

Вопрос

Почему в Kotlin нет оператора a ? b : c?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: if в Kotlin является выражением и возвращает значение. val max = if (a b) a else b возвращает значение, поэтому отдельный тернарный оператор не нужен; то же с when и try.

Варианты ответа

  1. if в Kotlin является выражением и возвращает значениеправильный ответ
  2. Его убрали ради совместимости с Java
  3. Его заменяет оператор ?:, который работает так же, как тернарный
  4. Он есть, но только для примитивов

Разбор

val max = if (a > b) a else b возвращает значение, поэтому отдельный тернарный оператор не нужен; то же с when и try. В Java тернарник есть, так что совместимость ни при чём. Elvis ?: похож внешне, но проверяет только null: x ?: y значит «x, если он не null, иначе y».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме