Kotlin 里有五个“看似相似、实则各有门派”的函数:let、with、run、apply、also。
它们是 Kotlin 官方定义的“标准函数(Standard Functions)”,
可是在面试中,它们也是让人最头疼的考点之一:
“run 和 apply 有什么区别?”
“什么时候用let比also更合适?”
“with为什么几乎不推荐用了?”
一、let — 最常用的空安全与链式利器
定义
inline fun <T, R> T.let(block: (T) -> R): R把当前对象(this)作为参数 it 传入 block 中执行,返回 block 的结果。
使用场景 1:空安全
user?.let { println("User name: ${it.name}") }只有在 user 非空时才执行,防止空指针异常(NullPointerException)。