kotlin - bool 值的使用?在 if 表达式中

如果我有一个可为空的 Boolean b,我可以在 Java 中进行以下比较:

Boolean b = ...;
if (b != null && b) {
   /* Do something */
} else {
   /* Do something else */
}

在 Kotlin 中,我可以使用 !! 运算符实现相同的目的:

val b: Boolean? = ...
if (b != null && b!!) {
   /* Do something */
} else {
   /* Do something else */
}

但是,!! 的使用对我来说有点粗略,绕过了 null 安全系统。

有没有更优雅的方法呢?


编辑 看来我有点过于简单化了。对于局部变量,如 Banthar显示,它确实有效。但是,我的 bool b 实际上是一个“带有支持字段的属性”(我还没有真正了解这会带来什么)。结果如下:

最佳答案

您可以使用相等运算符将可为空的 bool 值与 truefalsenull 进行比较:

var b: Boolean? = null
if (b == true) {
    // b was not null and equal true
} 
if (b == false) {
   // b is false 
}
if (b != true) { 
   // b is null or false 
}

关于kotlin - bool 值的使用?在 if 表达式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32830904/

相关文章:

syntax - Kotlin 二级构造函数

kotlin - Kotlin 中的多变量 let

kotlin - Kotlin 中等效的 Swift 'if let' 语句

android-studio - Android Studio 3.0 - 找不到方法 'com.a

kotlin - Kotlin 中的单个感叹号

generics - 如何在 Kotlin 中将 TypeToken + 泛型与 Gson 一起使用

enums - Kotlin 中具有反向查找的有效枚举?

kotlin - Kotlin中折叠和减少之间的区别,何时使用?

function - 何时在 Kotlin 中使用内联函数?

generics - Kotlin 中的 reified 关键字是如何工作的?