如果需要布尔值和无效检查,如何简化此Kotlin代码



a dataConfig对象具有一个可用的布尔字段 urlIsabled,并希望根据 dataConfig.urlIsabled == null还是 dataConfig.urlIsabled

的负数返回
val result = if (dataConfig.urlIsabled != null) (dataConfig.urlIsabled != true) else true)

可以简化吗?

绘制一个简单的真实表:

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

因此,在所有情况下,结果是true,除非urlIsabled等于true。因此,它可以表示为:

val result = dataConfig.urlIsabled != true

如果dataConfig.urlIsDisablednullfalse

,请尝试返回true

如果值等于true

,请倒转逻辑并返回false

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

可以简化为:

val result = dataConfig.urlIsabled in listOf(false, null)

最新更新