Kotlin 面试题
目录

Kotlin 中 let, run, with, apply, also 函数的区别和用法?

· 约 3 分钟读完 · 第 23 / 200 章

推荐答案

在 Kotlin 中,let、run、with、apply 和 also 是五个常用的扩展函数,它们的主要区别在于接收者对象(this 或 it)和返回值类型。以下是它们的区别和用法:

  • let:接收对象作为 it,返回值是 lambda 表达式的最后一行结果。常用于非空检查和对象转换。
  • run:接收对象作为 this,返回值是 lambda 表达式的最后一行结果。常用于对象初始化和计算。
  • with:接收对象作为 this,返回值是 lambda 表达式的最后一行结果。常用于对同一个对象进行多次操作。
  • apply:接收对象作为 this,返回值是对象本身。常用于对象配置和初始化。
  • also:接收对象作为 it,返回值是对象本身。常用于附加操作或日志记录。

本题详细解读

let

let 函数接收一个 lambda 表达式,并将对象作为 it 传递给 lambda。它的返回值是 lambda 表达式的最后一行结果。let 通常用于非空检查和对象转换。

run

run 函数接收一个 lambda 表达式,并将对象作为 this 传递给 lambda。它的返回值是 lambda 表达式的最后一行结果。run 通常用于对象初始化和计算。

with

with 函数接收一个对象和一个 lambda 表达式,并将对象作为 this 传递给 lambda。它的返回值是 lambda 表达式的最后一行结果。with 通常用于对同一个对象进行多次操作。

apply

apply 函数接收一个 lambda 表达式,并将对象作为 this 传递给 lambda。它的返回值是对象本身。apply 通常用于对象配置和初始化。

also

also 函数接收一个 lambda 表达式,并将对象作为 it 传递给 lambda。它的返回值是对象本身。also 通常用于附加操作或日志记录。

通过理解这些函数的区别和用法,可以在 Kotlin 中更灵活地处理对象操作。