当前位置: 首页 > news >正文

一文搞懂Kotlin的let、with、run、apply、also标准函数

Kotlin 里有五个“看似相似、实则各有门派”的函数:let、with、run、apply、also。

它们是 Kotlin 官方定义的“标准函数(Standard Functions)”,

可是在面试中,它们也是让人最头疼的考点之一:

“run 和 apply 有什么区别?”
“什么时候用 let 比 also 更合适?”
with 为什么几乎不推荐用了?”

一、let — 最常用的空安全与链式利器

定义

inline fun <T, R> T.let(block: (T) -> R): R

把当前对象(this)作为参数 it 传入 block 中执行,返回 block 的结果。

使用场景 1:空安全

user?.let { println("User name: ${it.name}") }

只有在 user 非空时才执行,防止空指针异常(NullPointerException)。

使用场景 2:链式操作

http://www.jsqmd.com/news/240748/

相关文章:

  • 搭建一套即便在你睡觉时,也能持续运转、产生收益的“睡后收入”系统
  • 揭秘9个免费AI论文生成器!导师不透露的效率飙升100%秘密
  • Solidworks2023软件启动就崩溃可能的解决办法
  • 深度学习毕设选题推荐:基于机器学习python_CNN深度学习卷积神经网络识别苹果品质基于python_CNN深度学习卷积神经网络识别苹果品质
  • 深度学习毕设项目推荐-基于python深度学习卷积网络训练识别核桃好坏
  • 面向 AIGC 的平台工程:构建高可用、可回滚的发布体系
  • 基于Flask和Vue的电商管理系统计算机毕业设计选题 计算机毕设项目 前后端分离【源码-文档报告-代码讲解】
  • 深度学习毕设项目推荐-基于python-CNN卷积神经网络训练识别牙齿是否健康
  • Maven 插件
  • 深入理解 TCP 四次挥手及相关网络问题
  • Windows SeBackupPrivilege 与 SeRestorePrivilege 特权利用
  • 【系统架构师备考笔记】003信息系统建设核心原则
  • 别把文献综述写成“读后感“!这套AI指令帮你构建“上帝视角“的学术地图
  • Ruby CGI Session
  • MX播放器 2.6.0| 安卓解码最强的媒体播放器
  • 【系统架构师备考笔记】004信息系统开发方法
  • 【毕业设计】基于深度学习python-CNN卷积神经网络对鸟类识别基于python-CNN卷积神经网络对鸟类识别
  • 2010年408(34)真题类似题详解:报文交换 vs 分组交换时延对比
  • 【课程设计/毕业设计】基于python机器学习卷积网络训练识别核桃好坏基于python深度学习卷积网络训练识别核桃好坏
  • 计算机深度学习毕设实战-基于python的深度学习卷积神经网络识别苹果品质基于python_CNN深度学习卷积神经网络识别苹果品质
  • 【系统架构师备考笔记】005 信息系统的分类与应用
  • 【课程设计/毕业设计】基于python-CNN机器学习卷积神经网络训练识别牙齿是否健康基于python-CNN卷积神经网络训练识别牙齿是否健康
  • CSS 列表详解
  • JS 隐式转换和显示转换
  • 【计算机毕业设计案例】基于python-CNN深度学习卷积神经网络对鸟类识别基于python-CNN卷积神经网络对鸟类识别
  • 【课程设计/毕业设计】基于深度学习python-CNN卷积神经网络对墙体有无污渍识别基于python-CNN卷积神经网络对墙体有无污渍识别
  • 深度学习毕设项目:基于python_CNN卷积神经网络识别苹果品质基于python_CNN深度学习卷积神经网络识别苹果品质
  • 012-计算机网络实验报告完整版!
  • 30+ QA面试常见问题与应答解析
  • Vue3 使用 Ajax (Axios) 实现前后端交互