kotlin lambda编程
Kotlin 的 Lambda(匿名函数)是函数式编程的核心特性之一,允许你以简洁的方式编写代码,尤其适用于集合操作、回调、DSL(领域特定语言)等场景。
1. Lambda 表达式基础
Lambda 表达式是一个匿名函数,语法如下:
1 | val sum: (Int, Int) -> Int = { a, b -> a + b } |
语法说明:
{ 参数1, 参数2 -> 函数体 }
val sum: (Int, Int) -> Int
明确声明了函数类型,表示它接收两个Int
并返回Int
。
2. 使用 it
关键字
当 Lambda 只有一个参数时,可以用 it
代替参数名:
1 | val square: (Int) -> Int = { it * it } |
3. Lambda 作为函数参数
Lambda 可以作为参数传递给函数:
1 | fun operateOnNumbers(a: Int, b: Int, operation: (Int, Int) -> Int): Int { |
4. 高阶函数
结合 Lambda
Kotlin 支持高阶函数(即参数或返回值是函数的函数):
1 | fun higherOrderFunction(operation: () -> Unit) { |
5. 在集合操作中的应用
Lambda 在 Kotlin 的集合 API 中应用广泛,如 map
、filter
、reduce
:
1 | val numbers = listOf(1, 2, 3, 4, 5) |
6. let
、apply
、run
、with
、also
Kotlin 提供了一系列作用域函数,结合 Lambda 使用非常强大:
1 | val name: String? = "Kotlin" |
7. 闭包(Closure)
Lambda 表达式可以访问外部变量:
1 | fun counter(): () -> Int { |
8. 带 return
的 Lambda
Lambda 默认返回最后一行的值,如果需要提前返回,可以使用 return@label
:
1 | listOf(1, 2, 3, 4, 5).forEach { |