Система типов Kotlin различает nullable и non-nullable типы на этапе компиляции, заставляя разработчиков явно и безопасно обрабатывать случаи с null.
?. — вызывает метод или получает свойство только если объект не null, иначе возвращает nullsomething?.foo()
?: — предоставляет запасное значение когда выражение слева равно nullsomething?.foo() ?: defaultValue
let — выполняет блок кода только когда значение не null, сохраняя логику чистой и локальнойsomething?.let { doSomething(it) }
if на null — выполняет стандартную проверку на null; smart cast Kotlin автоматически рассматривает переменную как non-nullable внутри блокаif (something != null) { something.foo() }
!! — принудительно предполагает non-null и выбрасывает NullPointerException если значение null; должен использоваться с осторожностьюsomething!!.foo()
let чтобы ограничить логику, которая зависит от non-null значения!! если ты не абсолютно уверен что значение не может быть null, так как это подрывает гарантии null-безопасности KotlinОператор безопасного вызова ?. возвращает результат вызова метода, если объект не равен null, или выбрасывает NullPointerException, если объект равен null.
Новый — ещё не проверен сообществом
Вы