Выбор ответа Junior Null-safety спрашивают часто обновлено
Что делает оператор !!
Вопрос
Что делает оператор !! в выражении name!!.length?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Бросает NPE при null, иначе даёт non-null значение. !! превращает nullable-значение в non-null и бросает NPE, если там null.
Варианты ответа
- Возвращает
null, еслиnameравенnull - Бросает NPE при
null, иначе даёт non-null значениеправильный ответ - Подставляет пустую строку вместо
null - Проверяет
nameпри компиляции и не даёт собрать код сnull
Разбор
!! превращает nullable-значение в non-null и бросает NPE, если там null. Это ручной отказ от защиты компилятора. Возврат null делает ?., подстановку значения ?:. Компилятор не может знать значение в рантайме, поэтому !! проверяется только при выполнении.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.