从源码角度理解Kotlin的apply,also以及run、with、 let函数的区别

这几个函数容易混淆,其实可以分组记忆,像我的标题一样,apply,also是一组,run with let是一组,为什么呢,因为他们有相似性

apply和also返回自身
run,with,let返回的是函数块的返回结果

看下源码加深下印象


从源码角度理解Kotlin的apply,also以及run、with、 let函数的区别_第1张图片
apply和also返回自身

从源码角度理解Kotlin的apply,also以及run、with、 let函数的区别_第2张图片
run,with,let返回的是函数块的返回结果

另外一个区别就是函数块中是用it还是直接引用属性,这里也可以从源码看出来,
比如apply和also,可以看到also是用it


从源码角度理解Kotlin的apply,also以及run、with、 let函数的区别_第3张图片
also用it

如果记不住也没关系,使用android studio的时候是有提示的,提示用this的时候直接用属性,提示用it的时候就用it


从源码角度理解Kotlin的apply,also以及run、with、 let函数的区别_第4张图片
android studio 的提示

参考:https://www.jianshu.com/p/73c54e35ce25

你可能感兴趣的:(从源码角度理解Kotlin的apply,also以及run、with、 let函数的区别)