Kotlin 作用域函数:理解 apply, let, 和 with

Kotlin提供了几个作用域函数来优化和简化代码的结构。

本文将对比分析 apply, let, 和 with 三个函数。

一、对比分析:

  1. apply :在其接收者的上下文中执行代码块,并返回接收者对象
  2. let :在其接收者的上下文中执行代码块,并返回代码块的结果
  3. with :不是扩展函数,需要对象和代码块作为参数,并返回代码块的结果

二、使用场景:

  1. apply 使用场景:当需要初始化或配置对象并返回该对象时。适合链式调用。
kotlin 复制代码
val person = Person().apply {
    name = "Alice"
    age = 25
}
  1. let 使用场景:处理可空对象,并对其执行一系列操作后返回结果。适用于变换值或链式处理。
kotlin 复制代码
val personName = person?.let { 
    it.processName()
    it.name // 返回值
}
  1. with 使用场景:当你有一个非空对象,并想在其上下文中执行多个操作时。适合对同一个对象执行多个操作。
kotlin 复制代码
val info = with(person) {
    printName()
    increaseAge()
    "Name: $name, Age: $age" // 返回值
}
相关推荐
独好紫罗兰7 小时前
对python的再认识-基于数据结构进行-a003-列表-排序
开发语言·数据结构·python
wuhen_n7 小时前
JavaScript内置数据结构
开发语言·前端·javascript·数据结构
不会代码的小测试7 小时前
UI自动化-POM封装
开发语言·python·selenium·自动化
roman_日积跬步-终至千里7 小时前
【Java并发】Java 线程池实战:警惕使用CompletableFuture.supplyAsync
java·开发语言·网络
lsx2024067 小时前
C++ 基本的输入输出
开发语言
儿歌八万首7 小时前
硬核春节:用 Compose 打造“赛博鞭炮”
android·kotlin·compose·春节
CodeSheep程序羊7 小时前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
独好紫罗兰7 小时前
对python的再认识-基于数据结构进行-a002-列表-列表推导式
开发语言·数据结构·python
I'mChloe7 小时前
PTO-ISA 深度解析:PyPTO 范式生成的底层指令集与 NPU 算子执行的硬件映射
c语言·开发语言
编程小白20268 小时前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习