导语: kotlin 标准库中, run, let, with, apply, also 实现解读
在看kotlin代码时, 可能会看到let, run这样的函数调用, 最早接触的时候, 我也弄不清楚其中差异...执行的结果就是执行这个block, 并返回R类型的对象. 这里的上下文this和run()方法被调用时候的this一致....这个函数的上下文this和第一个run不同, 上下文对应T这个类型的实例this....为什么说是混合:
let的函数参数block中, 对应的上下文this和第一个run函数是一致的
let和第二个run函数一样是一个extension函数, 但是它的block参数支持一个参数, 就是任意类型..., let的实现又非常相似
apply和T.run的block参数的上下文一致
also和T.let的block参数的上下文一致
只是返回值和run/let有所区别.