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函数类似,还可以链式调用

相关推荐
拾忆,想起1 分钟前
Dubbo健康检查全攻略:构建高可观测与高可用的微服务基座
开发语言·微服务·云原生·架构·php·dubbo·safari
早睡的叶子1 分钟前
AI 编译器中的 SRAM 内存分配管理算法调研
前端·人工智能·算法
yqcoder2 分钟前
uni-app 之 uni.showModal
前端·javascript·uni-app
lly2024062 分钟前
PHP 文件:深入解析与最佳实践
开发语言
夜空孤狼啸5 分钟前
npm、yarn、pnpm清理缓存
前端·缓存·npm
HIT_Weston6 分钟前
56、【Ubuntu】【Gitlab】拉出内网 Web 服务:http.server 单/多线程分析(八)
前端·ubuntu·gitlab
大模型真好玩7 分钟前
轻松搞定年度报告可视化,五分钟用 AntV + Trae Solo 快速构建智能图表生成器!
前端·人工智能·trae
程序猿编码8 分钟前
用 C++ 玩转字符级 Transformer 语言模型:从原理到实现
开发语言·c++·深度学习·语言模型·transformer
古城小栈8 分钟前
Go语言 赋能 区块链 开发
开发语言·golang·区块链
coderxiaohan10 分钟前
【C++】AVL树实现
开发语言·c++