前置知识: Kotlin

作用域函数区别

00:00
1 min Advanced 2026/6/14

Kotlin作用域函数区别:let、run、with、apply、also。

1. 对比表

函数对象引用返回值是否扩展函数
letitlambda 结果
runthislambda 结果
withthislambda 结果否(参数
applythis对象本身
alsoit对象本身

2. 使用场景

2.1 let — 空安全与转换

val length = name?.let {
    println("Name: $it")
    it.length
}

2.2 apply — 对象配置

val person = Person().apply {
    name = "Alice"
    age = 30
}

2.3 also — 附加操作

val numbers = mutableListOf(1, 2, 3).also {
    println("Original: $it")
}

2.4 run — 执行块

val result = run {
    val a = computeA()
    val b = computeB()
    a + b
}

2.5 with — 非空对象操作

with(configuration) {
    host = "localhost"
    port = 8080
    debug = true
}

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式