Kotlin的let用法
let是Kotlin标准库中一个很优美的函数:
1 | fun <T, R> T.let(f: (T) -> R): R = f(this) |
`let`是一个scoping函数,能够让你在一个变量的范围内对它做一些事情:
1 | File("a.txt").let { |
作用在一个可空引用变量(?)上是另一种用法,这样只有在该变量非空的时候才会执行let范围内的代码:
1 | findUser(id)?.let { |
事实上,这种用法只是一种不带else分支的if用法的变种,是有缺陷的,变量不为空就执行代码,为空的话呢?
我们也可以显式进行lamda表达式调用:
1 | val user = findUser(id) |
和下面这样的用法基本上一样,下面的不翻译了,没啥意思。
1 | val user = findUser(id) |