Выбор ответа Middle Null-safety обновлено

Безопасный вызов let и пустой результат

Вопрос

Что выведет код, если email равен null?

val email: String? = null
email?.let { println("Почта: $it") }

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

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

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

Коротко

Правильный ответ: Ничего не выведет. ?.let { } выполняет блок только для не-null значения.

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

  1. Почта: null
  2. Пустую строку и перевод строки
  3. Упадёт с NPE
  4. Ничего не выведетправильный ответ

Разбор

?.let { } выполняет блок только для не-null значения. При email == null вызова let нет, всё выражение вернёт null, и println внутри блока не выполнится. NPE возможен только при !! или при работе с платформенным типом.

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

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