使用 let 或者也可以简化使用可空对象的操作

Kotlin 中的 let 从它被调用的对象创建一个本地绑定。例:

val str = "foo"
str.let {
    println(it) // it
}  

这将打印 foo 并将返回 Unit

letalso 之间的区别在于你可以从 let 块中返回任何值。另一方面,also 将永远重新燃起。

你问为什么这个有用呢?因为如果你调用一个可以返回 null 的方法并且你只想在返回值不是 null 时运行一些代码,你可以像这样使用 letalso

val str: String? = someFun()
str?.let {
    println(it)
}

str 不是 null 时,这段代码只会运行 let 块。注意 null 安全运算符(?)。