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

news/2024/11/19 17:31:51/

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

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

一、分析:

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

二、使用场景:

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

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

感谢阅读,Best Regards!


http://www.ppmy.cn/news/1260404.html

相关文章

JFrog Artifactory—高性能软件制品管理仓库

产品概述 JFrog Artifactory是一个可扩展的通用二进制存储库管理器,可在整个应用程序开发和交付过程中自动管理工件和依赖项。JFrog Artifactory支持大多数开发语言,是整个DevOps流水线中大多数软件包、容器映像和Helm图表的单一数据源。Artifactory对元…

Linux C语言 37- 进程间通信IPC

Linux C语言 37-进程间通信IPC 本节关键字:C语言 进程间通信 信号 管道 消息队列 共享内存 网络通信(套接字) 相关库函数: 提示:先做内容框架梳理,后期进行完善补充! 什么是进程间通信&#…

Vue + Element 实现按钮指定间隔时间点击

1、业务需求 需要加一个按钮&#xff0c;调用第三方API&#xff0c;按钮十分钟之内只能点击一次&#xff0c;刷新页面也只能点击一次 2、思路 加一个本地缓存的时间戳&#xff0c;通过时间戳计算指定时间内不能点击按钮 3、实现 1&#xff09;vue页面 <template>&l…

分块板子题

区间加法&#xff0c;区间求和 #include <bits/stdc.h> using namespace std; using ll long long; const int N 1e6 10; #define int long long ll s[N], b[N], w[N], add[N]; ll l[N], r[N], belong[N]; ll len, tot, n, q;inline void init() {len sqrt(n), tot …

Linux---逻辑卷管理

本章主要介绍逻辑卷的管理。 了解什么是逻辑卷创建和删除逻辑卷扩展逻辑卷缩小逻辑卷逻辑卷快照的使用 前面介绍了分区的使用&#xff0c;如果某个分区空间不够&#xff0c;想增加空间是非常困难的。所以&#xff0c;建议尽可能使用逻辑卷而非普通的分区&#xff0c;因为逻辑卷…

PPOCRv3检测模型和识别模型的训练和推理

PPOCRv3检测模型和识别模型的训练和推理 文章目录 PPOCRv3检测模型和识别模型的训练和推理前言一、环境安装1&#xff0c;官方推荐环境&#xff1a;2&#xff0c;本机GPU环境 二、Conda虚拟环境1.Win10安装Anaconda32.使用conda创建虚拟环境 三、安装PPOCR环境1&#xff0c;安装…

Golang实践录:读取toml配置

本文对 toml 文件进行解析。 下载 对于toml格式文件&#xff0c;golang 有很多库可以解释 yaml 文件&#xff0c;如toml、viper。由于 viper 可解析格式较多&#xff0c;本文采用该库。 toml语法规则 toml语法规则在官方中文文档上有说明&#xff0c;这里直接使用。 TOML 是…

【PID学习笔记 4 】控制系统基础之三

写在前面 上一篇以一个经典的水温调节系统为案例&#xff0c;学习怎样对一个实际的应用进行数学建模。本文重点介绍负反馈原理的概念、控制系统的组成与分类、控制系统的基本要求。 一、负反馈原理 将系统的输出信号引回输入端&#xff0c;与输入信号相比较&#xff0c;利用…