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

Kotlin中的also、apply、invoke用法详解

以下是 Kotlin 中作用域函数(letrunwithalsoapply)和 invoke 操作符的完整总结,结合代码示例和对比说明,帮助您理解它们的用法和区别。


一、作用域函数:简化对象操作

作用域函数用于在对象的上下文中执行代码块,并根据函数的不同返回对象本身或 lambda 的结果。以下是它们的核心区别:

1. let

  • 引用对象it(默认参数名,可自定义)
  • 返回值:lambda 表达式的结果
  • 典型场景:非空对象操作、链式处理
val name: String? = "Kotlin"
val length = name?.let { println("Name is $it")  // 输出: Name is Kotlinit.length              // 返回结果
}
println(length)  // 输出: 6

2. run

  • 两种形式
    • 扩展函数形式:使用 this 引用对象,返回 lambda 结果。
    • 上下文对象形式:直接调用,返回 lambda 结果。
  • 典型场景:对象配置并返回计算结果。
扩展函数形式
data class Config(var host: String = "", var po
http://www.xdnf.cn/news/168121.html

相关文章:

  • 泛型的诗意——深入C++模板的艺术与科学(模版进阶)
  • 【MySQL】数据类型和表的操作
  • 数据结构【堆和链式结构】
  • 音视频之H.265/HEVC熵编码
  • 第三章,GRE和MGRE
  • 算法效率的钥匙:从大O看复杂度计算 —— C语言数据结构第一讲
  • 《数据结构初阶》【顺序表 + 单链表 + 双向链表】
  • JAVA:单例模式
  • 【含文档+PPT+源码】Python爬虫人口老龄化大数据分析平台的设计与实现
  • Python爬虫(6)静态页面解析实战:BeautifulSoup与lxml(XPath)高效提取数据指南
  • Kafka批量消费部分处理成功时的手动提交方案
  • C# 类的基本概念(声明类)
  • 技术分享 | Oracle-RAC修改IP信息
  • Redis超详细入门教程(基础篇)
  • redis_Windows中安装redis
  • Spring_MVC 中的 JSON 数据处理与 REST 风格开发
  • qt.qpa.plugin: Could not find the Qt platform plugin “cocoa“ in “ “
  • 蓝桥杯 2. 确定字符串是否是另一个的排列
  • 详解最新链路追踪skywalking框架介绍、架构、环境本地部署配置、整合微服务springcloudalibaba 、日志收集、自定义链路追踪、告警等
  • 第十六届蓝桥杯大赛软件赛省赛 C/C++ 大学B组 [京津冀]
  • 基于强化学习的智能交通控制系统设计
  • Eigen矩阵操作类 (Map, Block, 视图类)
  • 【JavaScript】逻辑运算符--非布尔值的与或运算、赋值运算符
  • 4月26日随笔
  • springboot应用使用shell脚本打包成部署压缩包(支持xjar)
  • AI心理健康服务平台项目面试实战
  • 使用Xshell中自带的传输新建文件功能实现上传下载文件
  • 树相关处理
  • UniApp 的现状与 WASM 支持的迫切性
  • w308汽车销售系统的设计与实现