楼主: eassyyyy
67 0

[作业] Kotlin作用域函数 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
120 点
帖子
3
精华
0
在线时间
0 小时
注册时间
2018-3-23
最后登录
2018-3-23

楼主
eassyyyy 发表于 2025-11-27 14:51:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

先来看看最常用的 let 函数。它主要适用于两种场景:处理可能为 null 的对象,以及进行数据转换。例如,从接口获取到一个可能为空的字符串时,使用 let 可以极大提升空安全处理的可靠性:

在 lambda 表达式中,it 指代的是当前调用对象(如 user),可以直接使用。此外,lambda 中的最后一行会自动作为返回值返回,因此非常适合用于数据结构的转换操作——比如将一个 User 对象映射为 ViewModel 对象:

[此处为图片1]

接下来说说 run,它有两种常见的使用方式。第一种是作为扩展函数调用:

第二种则是作为普通函数使用,适用于需要临时创建一个作用域的场合:

[此处为图片2]

with 的使用方式相对直观,它接收一个对象作为参数,并在其 lambda 块中直接调用该对象的方法:

这种方式特别适合对某个对象执行一系列连续操作,相比反复书写对象名,代码更加简洁清晰。

[此处为图片3]

apply 则是配置对象属性时的首选。它的 lambda 体内默认使用 this 来引用对象本身,且最终返回对象自身,因此非常适用于对象初始化或构建过程中的属性设置:

[此处为图片4]

最后是 also,它的行为与 let 相似,但关键区别在于:它返回的是对象本身,而不是 lambda 中最后一行的计算结果。因此常被用于链式调用中插入一些副作用操作:

比如在调试过程中添加日志输出,或者临时保存某个中间状态的数据,also 都是非常合适的选择。

[此处为图片5]

简单总结一下选择这些作用域函数的基本规律:

  • 如果希望返回 lambda 内的执行结果,优先考虑 letrunwith
  • 若需要返回对象本身,则选用 applyalso
  • 涉及空安全处理时,优先使用 let
  • 当目标是配置对象属性时,直接使用 apply
  • 仅需一个独立作用域且不依赖对象上下文时,可选择 run

在实际开发中,这些函数常常结合使用,例如:

[此处为图片6]

虽然刚开始可能不容易记住每个函数的区别,但只要多写几次,很快就能形成习惯。关键在于理解它们的设计初衷——并非为了追求语法炫技,而是为了让代码更清晰、更安全、更具可读性。下次在处理对象逻辑时,不妨思考是否可以通过这些函数进行优化,一旦用顺手了,就很难再回到原来的方式了。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Lin TLI Lambda apply model

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-30 05:57