Утверждение не-null значения в Kotlin
Оператор !! сообщает компилятору, что
nullable-значение точно не null. После
него тип становится обычным, и можно вызывать
методы без ?.:
val sure: String? = "ok"
println(sure!!.length)
Если предположение неверно и там все же null,
программа завершится ошибкой
NullPointerException. Такой прием
оставляют для редких случаев, когда пустота
уже отсечена логикой выше, но компилятор
этого не видит:
val fail: String? = null
// println(fail!!.length) // упадет при запуске
В учебных и рабочих задачах чаще хватает
?., проверки if и ?: -
!! не заменяет их, а снимает только
предупреждение компилятора ценой риска:
val token: String? = "data"
val len = if (token != null) token.length else 0
println(len)
Дана переменная:
val key: String? = "secret"
Выведите длину строки одним выражением.
Дана переменная:
val item: String? = "x"
Сначала сравните item с null.
Только если значение есть, выведите строку
в верхнем регистре.