Kotlin 中的 also 和 run:选择正确的作用域函数

在 Kotlin 中,also 和 run 是两个十分有用的作用域函数。

虽然它们在功能上相似,但各自有独特的用途和适用场景。

一、分析:

  1. also:在对象的上下文中执行给定的代码块,并返回对象本身。它的参数是一个接收对象并返回 Unit 的 lambda 函数。
  2. run:在对象的上下文中执行给定的代码块,并返回代码块的结果。当对象调用 run 时,它不需要参数。

二、使用场景:

  1. 使用 also:当你想要对对象执行附加的操作(例如记录或打印值)而不改变对象本身时。also 通常用于链式调用。
kotlin 复制代码
val list = mutableListOf(1, 2, 3).also {
	println("初始化列表: $it") 
}
  1. 使用 run:当你需要在对象的上下文中执行一系列操作,并需要一个结果时。它非常适合对对象的属性进行变换或计算。
kotlin 复制代码
val length = "Hello, Kotlin!".run { 
    println("字符串长度是: $length")
    length // 返回值
}

also 和 run 的合理使用可以使 Kotlin 代码更加简洁。

感谢阅读,Best Regards!

相关推荐
stevenzqzq7 小时前
mvi的理解
android·compose
脚踏实地,坚持不懈!7 小时前
Android 电池健康度检测全流程(驱动 → 内核 → HAL → Framework)
android·linux
czq_26867194877 小时前
Python打卡第34天
开发语言·python·机器学习
恋猫de小郭7 小时前
Genkit Dart 1.0 发布,Flutter 原生的 AI Agent 终于完整了
android·前端·flutter
迪康妍妍7 小时前
终端安全实战:用迪康终端安全管理系统实现U盘四分档管控与全量审计
android·运维·网络·安全·电脑
JackLam7 小时前
mobile-use 使用与接入第三方 LLM 网关完整指南OC
android·ai·mobile use
小黄人软件7 小时前
粘贴助手C++版 支持 Windows 7 / 10 / 11 不会出现缺少api-ms-win-core-path-11-1-0.dll
开发语言·c++·windows
snotJam7 小时前
关于Uniapp的Android自定义基座使用
android·uni-app
半亩码田8 小时前
C#转Python第4.7篇:logging:Python 的标准日志库
开发语言·python·c#
程序员老陆8 小时前
从汇编层面理解 C++ 多线程
开发语言·c++·程序设计