kotlin内置的一些扩展函数,像 let()、 with()、 also()、 run()、 apply(),可以优化kotlin的编码,有个博主总结的很好,转载插眼。自己也总结了一下
区别
1.let()、with()、also()能做的,run()和apply()都能做
2.apply()整体作用功能和run()函数很像,唯一不同点就是它返回的值是对象本身,而run函数是一个闭包形式返回,返回的是最后一行的值
使用场景
apply()和run()的使用场景
1.适用于处理不为null的操作场景
2.适用于调用对象的多个方法或属性赋值,可以省去对象名
因为apply()返回的是对象本身,所以使用场景更多:
1.可用于多个扩展函数链式调用
2.数据model多层级包裹判空处理的问题