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
如果true
是dataConfig.urlIsDisabled
或null
,你试图返回false
。
如果值等于false
,只需反转逻辑并返回true
:
val result = !(dataConfig.urlIsabled == true)
可以简化为:
val result = dataConfig.urlIsabled in listOf(false, null)