Как упростить этот код Котлина, если он нуждается в булевой и обнуляемой проверке? - PullRequest
1 голос
/ 12 марта 2019

A dataConfig объект имеет логическое поле nullable urlIsabled и хотел бы вернуться на основании того, является ли dataConfig.urlIsabled == нулевым или отрицательным значением dataConfig.urlIsabled

val result = if (dataConfig.urlIsabled != null) (dataConfig.urlIsabled != true) else true)

это может быть упрощено?

Ответы [ 3 ]

4 голосов
/ 12 марта 2019

Составьте простую таблицу истинности:

| dataConfig.urlIsabled | result |
|-----------------------|--------|
|        null           |  true  |
|        true           |  false |
|        false          |  true  |
|-----------------------|--------|

Таким образом, результат равен true во всех случаях, кроме случаев, когда urlIsabled равно true.Таким образом это может быть выражено как:

val result = dataConfig.urlIsabled != true
1 голос
/ 12 марта 2019

Вы пытаетесь вернуть true, если dataConfig.urlIsDisabled равно null или false.

Просто инвертируйте логику и верните false, если значение равно true:

val result = !(dataConfig.urlIsabled == true)

0 голосов
/ 12 марта 2019

Можно упростить как:

val result = dataConfig.urlIsabled in listOf(false, null)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...