Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 第三部分:函数式编程与并发

第三部分:函数式编程与并发

第 10 章:高阶函数与 Lambda 表达式

10.1 Lambda 表达式的语法与使用

1. Lambda 表达式简介

Lambda 表达式是 Kotlin 中函数式编程的核心特性之一,它允许将函数作为参数传递或直接定义匿名函数。Lambda 表达式简洁且灵活,常用于简化代码逻辑。

2. 基本语法

Lambda 表达式的标准语法如下:

{ 参数列表 -> 函数体 }
  • 参数列表:声明 Lambda 的输入参数,多个参数用逗号分隔。
  • 函数体:Lambda 的具体实现逻辑,最后一行表达式的结果会自动作为返回值。

示例:

val sum = { a: Int, b: Int -> a + b }
println(sum(3, 5)) // 输出:8

3. Lambda 表达式的简化

Kotlin 提供了多种简化 Lambda 的语法:

  • 单参数隐式名称:如果 Lambda 只有一个参数,可以省略参数声明,用 it 代替。
    val square: (Int) -> Int = { it * it }
    println(square(4)) // 输出:16
    
  • 函数调用末尾的 Lambda:如果 Lambda 是函数的最后一个参数,可以将其移到括号外。
    listOf(1, 2, 3).forEach { println(it) }
    

4. Lambda 与高阶函数结合

Lambda 常用于高阶函数(如 map、filter)的参数中:

val numbers = listOf(1, 2, 3, 4)
val doubled = numbers.map { it * 2 } // [2, 4, 6, 8]
val evens = numbers.filter { it % 2 == 0 } // [2, 4]

5. Lambda 的类型

Lambda 的类型是函数类型(Function Type),例如:

  • () -> Unit:无参数、无返回值的 Lambda。
  • (Int, String) -> Boolean:接受 Int 和 String 参数并返回 Boolean 的 Lambda。

示例:

val greet: () -> Unit = { println("Hello!") }
val isPositive: (Int) -> Boolean = { it > 0 }

6. 注意事项

  • 返回值:Lambda 的返回值是函数体最后一行的表达式,无需显式写 return。
  • 作用域:Lambda 可以访问外部作用域的变量(闭包特性)。
    var count = 0
    val increment = { count++ }
    increment()
    println(count) // 输出:1
    

7. 实战示例

// 使用 Lambda 实现自定义排序
val names = listOf("Alice", "Bob", "Charlie")
val sorted = names.sortedBy { it.length } // 按字符串长度排序
println(sorted) // 输出:[Bob, Alice, Charlie]

总结:
Lambda 表达式是 Kotlin 函数式编程的基石,通过简洁的语法实现灵活的代码逻辑。掌握其语法和常见用法,能够显著提升代码的可读性和功能性。

Last Updated:: 5/21/25, 7:58 PM