kotlin标准库函数使用场景(let、run、with、apply、also)

文章目录

前言

Kotlin 标准库提供了一些非常有用的扩展函数,如 let, run, with, apply, also 等,这些函数通常被用作接收一个对象并以某种方式处理它。

它们的主要目的是为了使代码更加简洁和易读。下面来说明这些函数的一些常见使用场景。

let

用途

对非空值进行安全的操作,如果值不为空,则执行提供的 lambda 表达式。

示例

kotlin 复制代码
val person: Person? = findPersonById(1)
person?.let { 
    println("Name: ${it.name}, Age: ${it.age}") 
}

run

用途

接收一个上下文对象,并返回该对象或任何其他值。通常用于初始化和配置对象。

示例

kotlin 复制代码
val result = run {
    val person = Person("John", 30)
    person.age += 1
    "New age is ${person.age}"
}
println(result)

with

用途

接收一个上下文对象,在提供的 lambda 中使用该对象的属性和方法,但不返回任何特定值。

示例

kotlin 复制代码
with(Person("Jane", 25)) {
    println(name)
    println(age)
}

apply

用途

用于对象的初始化和配置,执行完 lambda 后返回该对象本身。

示例

kotlin 复制代码
val person = Person("Alice", 22).apply {
    age += 1
    name = "Alicia"
}
println(person.name)
println(person.age)

also

用途

对一个对象执行一些操作,然后返回该对象本身。通常用于日志记录或调试。

示例

kotlin 复制代码
val person = Person("Bob", 30).also {
    println("Creating new person: ${it.name}")
}
println(person.name)
println(person.age)

使用场景总结

  • let:通常用于处理可能为 null 的对象,只有当对象非 null 时才执行某些操作。
  • run:适用于需要返回一个结果的操作,并且可以改变上下文对象的状态。
  • with:通常用于简化代码,避免多次引用同一个对象。
  • apply:专门用于对象的初始化和配置,特别适合于构造复杂对象。
  • also:通常用于添加额外的行为(如日志记录),并且不会改变对象的状态。

这些函数使得 Kotlin 的代码更加简洁、可读性更强,同时也能有效地减少样板代码。

相关推荐
赏金术士18 小时前
Kotlin 从入门到进阶 之函数模块(核心基础)(二)
android·开发语言·kotlin
weixin_4491736519 小时前
在 Java 中,‌线程安全的 List‌ 主要有以下几种实现方式,它们的效率取决于具体的使用场景(尤其是读写比例):
java·线程安全的list
砚底藏山河19 小时前
股票数据API接口:如何获取股票历历史分时KDJ数据
java·python·maven
xuankuxiaoyao20 小时前
Vue.js实践-组件基础下
前端·javascript·vue.js
小白学大数据20 小时前
JS 混淆加密下的 Python 爬虫解决方案
javascript·爬虫·python
MegaDataFlowers20 小时前
运行若依项目
java
lulu121654407820 小时前
JetBrains IDE 终极AI编程方案:CC GUI插件让Claude Code和Codex丝滑运行
java·ide·人工智能·python·ai编程
大家的林语冰21 小时前
前端周刊:axios 疑遭朝鲜黑客“钓鱼“;CSS 新函数上线;npm 上线深色主题;Oxlint 兼容表;ESLint 支持 Temporal......
前端·javascript·css
('-')21 小时前
八股复习2:Java Array list和Linked list
java·开发语言
逸Y 仙X21 小时前
Elasticsearch时间类型实战
java·大数据·elasticsearch·搜索引擎·全文检索