Kotlin作用域函数:let、also、run、apply、with

​​​​​​​

let函数

使用场景:可空变量的操作,无需判空

Kotlin 复制代码
p?.let {
        it.name = "lily"
        it.age = "21"
    }

also函数

使用场景:多个扩展函数链式调用(返回值是本身)

Kotlin 复制代码
p?.also {
        it.name = "deni"
        it.age = "26"
    }?.displayInfo() 

with函数

使用场景:可以省去类名重复,直接调用类的方法就行

Kotlin 复制代码
 with(p) {
       name = "leon"
       age = "26"
    }

run函数

使用场景:既可以空变量的操作,无需判空,又可以省去类名重复,直接调用类的方法就行

apply函数

使用场景:跟run函数类似,还可以链式调用

相关推荐
发现一只大呆瓜5 分钟前
Vue-Vue2与Vue3核心差异与进化
前端·vue.js·面试
sunny_12 分钟前
熬夜通宵读完 VitePlus 全部源码,我后悔没早点看
前端·前端框架·前端工程化
发现一只大呆瓜29 分钟前
Vue2:数组/对象操作避坑大全
前端·vue.js·面试
发现一只大呆瓜31 分钟前
Vue3:ref 与 reactive 超全对比
前端·vue.js·面试
菜鸟‍33 分钟前
【后端项目】苍穹外卖day01-开发环境搭建
java·开发语言·spring boot
lzksword37 分钟前
C++ Builder XE OpenDialog1打开多文件并显示xls与xlsx二种格式文件
java·前端·c++
青槿吖43 分钟前
【保姆级教程】Spring事务控制通关指南:XML+注解双版本,避坑指南全奉上
xml·java·开发语言·数据库·sql·spring·mybatis
陈随易1 小时前
站在普通开发者的角度,我觉得 RollCode 更像是“把 H5 交付这件事重新捋顺了”
前端·后端·程序员
Yungoal1 小时前
B/S和C/S架构在服务端接收请求
c语言·开发语言·架构
陈随易1 小时前
RollCode:不只是在做页面,而是在缩短“从需求到上线”的整条链路
前端·后端