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

相关推荐
海盗123413 小时前
C#上位机开发-S7协议通信
开发语言·c#
小短腿的代码世界13 小时前
Qt 2D 绘制实战与性能优化深度解析
开发语言·qt·性能优化
椰羊~王小美13 小时前
除了前端 JS 配置的国际化,对于 JS 没覆盖到的文本,怎么实现国际化
前端·javascript·状态模式
FeBaby13 小时前
ReentrantLock 与 synchronized 底层实现对比图解
开发语言·c#
jaycyj13 小时前
pytest
开发语言·python
A_aspectJ14 小时前
【Java基础开发】基于 Java Swing +MySQL + JDBC 版实现图书管理系统
java·开发语言·mysql
AC赳赳老秦14 小时前
DBA 专属方案:用 OpenClaw 实现 SQL 语句优化、慢查询分析、数据库备份巡检全自动化
服务器·前端·数据库·ffmpeg·自动化·deepseek·openclaw
Gary Studio14 小时前
安卓HAL编译流程
开发语言·python
我是无敌小恐龙14 小时前
Java SE 零基础入门Day06 方法重载+Debug调试+String字符串全套API详解(超全干货)
java·开发语言·人工智能·python·transformer·无人机·量子计算
AI+程序员在路上14 小时前
Qt6读取rtsp视频流的几种方法
开发语言·qt6.3