在 Kotlin 的 if 条件表达式中使用 Boolean?
大家好!我刚刚从 Java 开始学习 Kotlin,遇到了一个我无法理解的问题。
我有一个可空变量 `isActive: Boolean?`,它可以是 `true`、`false` 或 `null`。我想在 `if` 条件中检查它:
```kotlin
var isActive: Boolean? = null
if (isActive) {
println("活跃")
} else {
println("不活跃")
}
```
但编译器报错:"Type mismatch: inferred type is Boolean? but Boolean was expected"。
我明白 `Boolean?` 是可空类型,而 `if` 期望的是普通的 `Boolean`。但如何正确处理这种情况?我需要当值为 `null` 时程序也能做点什么(例如,将其视为“不活跃”)。
请告诉我这在 Kotlin 中怎么做?我试过使用 `if (isActive == true)`,但这看起来像是一个临时解决方案。有没有更符合习惯用法的方式?
提前感谢您的帮助!
<<>>
问题:为什么不能在 if 中使用 Boolean?
在 Kotlin 中,类型 Boolean?