安全调用

可以使用安全调用操作符-- ?.

b?.length

如果b不为空则返回b.length,否则返回null。表达式的类型就是Int?。

安全调用在链式调用时很有用。比如,如果Bob,一个雇员,被委派到一个部门,这样的话可能会返回另一个部门的雇员,现在为了获取新雇员的名字,我们可以这样写:

bob?.department?.head?.name

这样的链式调用如果所有的属性都为空,那么最终的返回将会为空。

为了执行非空值的特定操作,你可以使用在安全调用中搭配let一起使用。

val listWithNulls: List<String?> = listOf("A", null)
for (item in listWithNulls) {
    item?.let { println(it) } // prints A and ignores null
}

results matching ""

    No results matching ""