apply:
于不返回值且主要在接收者(this
)对象的成员上运行的代码块使用 apply
。apply
的常见情况是对象配置。这样的调用可以理解为“将以下赋值操作应用于对象”。
also
上下文对象作为 lambda 表达式的参数(it
)来访问。 返回值是上下文对象本身。
当你在代码中看到 also
时,可以将其理解为“并且用该对象执行以下操作”。
with
可以理解为“对于这个对象,执行以下操作。”
函数 | 对象引用 | 返回值 | 是否是扩展函数 |
---|---|---|---|
let |
it |
Lambda 表达式结果 | 是 |
run |
this |
Lambda 表达式结果 | 是 |
run |
- | Lambda 表达式结果 | 不是:调用无需上下文对象 |
with |
this |
Lambda 表达式结果 | 不是:把上下文对象当做参数 |
apply |
this |
上下文对象 | 是 |
also |
it |
上下文对象 | 是 |
以下是根据预期目的选择作用域函数的简短指南:
- 对一个非空(non-null)对象执行 lambda 表达式:
let
- 将表达式作为变量引入为局部作用域中:
let
- 对象配置:
apply
- 对象配置并且计算结果:
run
- 在需要表达式的地方运行语句:非扩展的
run
- 附加效果:
also
- 一个对象的一组函数调用:
with