如果kotlin代码同时需要布尔和可空检查,如何简化它?

如果kotlin代码同时需要布尔和可空检查,如何简化它?,kotlin,Kotlin,dataConfig对象有一个可为null的布尔字段urlIsabled,并希望根据dataConfig.urlIsabled==null还是dataConfig.urlIsabled的负数返回 可以简化吗?可以简化为: val result = dataConfig.urlIsabled in listOf(false, null) 可以简化为: val result = dataConfig.urlIsabled in listOf(false, null) 如果dataConfig.u

dataConfig对象有一个可为null的布尔字段urlIsabled,并希望根据dataConfig.urlIsabled==null还是dataConfig.urlIsabled的负数返回

可以简化吗?

可以简化为:

val result = dataConfig.urlIsabled in listOf(false, null)
可以简化为:

val result = dataConfig.urlIsabled in listOf(false, null)
如果dataConfig.urlIsDisabled为null或false,则尝试返回true

只要反转逻辑,如果值等于true,则返回false:

val结果=!dataConfig.urlIsabled==true

如果dataConfig.urlIsDisabled为null或false,则尝试返回true

只要反转逻辑,如果值等于true,则返回false:


val结果=!dataConfig.urlIsabled==true

绘制一个简单的真值表:

| dataConfig.urlIsabled | result |
|-----------------------|--------|
|        null           |  true  |
|        true           |  false |
|        false          |  true  |
|-----------------------|--------|
因此,结果在所有情况下都是正确的,除非urlIsabled等于true。因此,它可以表示为:

val result = dataConfig.urlIsabled != true

绘制一个简单的真值表:

| dataConfig.urlIsabled | result |
|-----------------------|--------|
|        null           |  true  |
|        true           |  false |
|        false          |  true  |
|-----------------------|--------|
因此,结果在所有情况下都是正确的,除非urlIsabled等于true。因此,它可以表示为:

val result = dataConfig.urlIsabled != true
另见此问题:另见此问题: