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!

相关推荐
峥嵘life6 分钟前
Android16 【CTS】CtsWindowManagerDeviceAnimations存在fail项
android·linux·学习
清水白石0089 分钟前
Python 内存陷阱深度解析——浅拷贝、深拷贝与对象复制的正确姿势
开发语言·python
phltxy16 分钟前
算法刷题|模拟思想高频题全解(Java版)
java·开发语言·算法
愚者游世23 分钟前
template学习大纲
开发语言·c++·程序人生·面试·visual studio
阿里嘎多学长24 分钟前
2026-03-11 GitHub 热点项目精选
开发语言·程序员·github·代码托管
宵时待雨26 分钟前
C++笔记归纳10:继承
开发语言·数据结构·c++·笔记·算法
csbysj202027 分钟前
TypeScript String
开发语言
小温冲冲32 分钟前
QML vs Qt Widgets:深度对比与选型实战指南
开发语言·c++·qt
smchaopiao34 分钟前
C++20概念(Concepts)入门指南
开发语言·c++·算法
挠头猴子44 分钟前
c++中常用的运算符优先级
java·开发语言·c++