Как запустить код, если объект имеет значение null?

В Kotlin я могу запустить код, если объект не имеет нулевого значения:

data?.let { ... // execute this block if not null } 

но как я могу выполнить блок кода, если объект имеет значение null?

Просто используйте нормальный, if :

 if (data == null) { // Do something } 

Вы можете использовать оператор elvis и оценить другой блок кода с помощью run { ... } :

 data?.let { // execute this block if not null } ?: run { // execute this block if null } 

Но это, похоже, не так читаемо, как простое выражение if else .

Кроме того, вы можете найти это Q & A полезным:

  • В Котлине, какой идиоматический способ справиться с значениями NULL, ссылаться или преобразовывать их

Вы можете создать такую ​​функцию:

 infix fun Any?.ifNull(block: () -> Unit) { if (this == null) block() } 

Тогда вы можете сделать это:

 data ifNull { // Do something } 
Intereting Posts
Тест для Android в котлинском царстве Кинжал 2 + Котлин не может ввести Presenter в View Скрытие стандартных конструкторов по умолчанию Котлин: Подавить неиспользуемое имущество? Котлин не видит аксессуаров Java Lombok? Почему я вынужден использовать !! в сочетании с нулевыми проверками? Как я могу игнорировать все предупреждения для Kotlin в IntelliJ IDEA? Android OutOfMemoryError: не удалось выделить выделение байтов 57993496 с 16764448 бесплатными байтами Как вызвать метод Java Kotlin, который называется с escape-символами? Не удалось отобразить ошибку EditText в коде Kotlin Связывание данных с Kotlin приводит к ресурсу $ NotFoundException ClassNotFoundException при последующих сборках после преобразования MainActivity в Kotlin Почему в Kotlin нет ключевых слов параллелизма? Каковы преимущества сопутствующего объекта над простым объектом? gradle multi-project: каталог сборки появляется в корневом каталоге, содержащем артефакты Котлина