【发布时间】:2014-07-09 21:19:26
【问题描述】:
让我们有一个函数foo和一个类Bar:
fun foo(key: String): String? {
// returns string or null
}
class Bar(x: String, y: String) {
// ...
}
现在,让我们来看看代码:
val x = foo("x")
val y = foo("y")
if (x.isNotEmpty() && y.isNotEmpty())
return Bar(x, y)
问题是这段代码无法编译。因为它需要Bar(x!!, y!!)。
但是当我用它的内容替换函数时,!! 就不需要了。
val x = foo("x")
val y = foo("y")
if ((x != null && x.length() > 0) && (y != null && y.length() > 0))
return Bar(x, y)
为什么无法从函数.isNotEmpty() 解析空检查?
【问题讨论】:
-
了解更多关于 Kotlin 可空类型和操作符以及处理它们的方法:stackoverflow.com/questions/34498562/…
标签: kotlin language-design kotlin-null-safety