条件语句中的空检查

首先,你可以显示的检查b是null,别切分别处理两种情况:

val l = if (b != null) b.length else -1

编译器会跟踪检查代码的信息,允许你在if中访问length。现在还支持更复杂的条件语句:

if (b != null && b.length > 0) {
    print("String of length ${b.length}")
} else {
    print("Empty string")
}

需要注意的是,这个仅仅在b是不可变的情况下才有效(在检查和使用期间不会被改变的局部变量或者是有backing filed并且不能被重写的只读成员),因为其他情况可能导致b在检查之后变成null。

results matching ""

    No results matching ""