如果我具有nullable 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 */
}
但是,使用!!
感觉对我来说有点粗略,绕过了无效安全系统。
有没有更优雅的方法呢?
编辑似乎我简化了一点。如Banthar所示,对于局部变量,它确实有效。但是,我的布尔b
值实际上是“具有后备字段的属性”(我并没有真正加快步伐)。结果如下:
—
nhaarman
但是
—
Maroun
b != nil
在检查右侧之前不会抓住这一点吗?
您可能确实会说,但是我的IDE却相反。我确实记得类似的事情应该起作用,我会看看是否能找到一些东西。
—
nhaarman
我认为
—
Maroun
val r = b?doSomething() ?: doSomethingElse()
应该可以。
!!b
而不是简单b
?(我对Kotlin不太熟悉,只是