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
  • 局部函数与高阶函数初步

局部函数与高阶函数初步

局部函数

在 Kotlin 中,函数可以嵌套定义,即在一个函数内部定义另一个函数,这种内部定义的函数称为局部函数。局部函数可以访问外部函数的变量和参数,有助于封装逻辑并减少代码重复。

语法示例

fun outerFunction(a: Int) {
    fun localFunction(b: Int) { // 局部函数
        println("Sum: ${a + b}") // 可以访问外部函数的参数 a
    }
    localFunction(10) // 调用局部函数
}

fun main() {
    outerFunction(5) // 输出:Sum: 15
}

特点

  1. 作用域限制:局部函数仅在外部函数内可见。
  2. 减少重复:将重复逻辑封装为局部函数,提升代码可读性。
  3. 访问外部变量:可直接使用外部函数的参数和局部变量。

高阶函数初步

高阶函数(Higher-Order Function)是指以函数作为参数或返回值的函数。Kotlin 通过 Lambda 表达式和函数类型支持高阶函数,这是函数式编程的核心特性之一。

函数类型

Kotlin 中函数类型表示为:(参数类型) -> 返回值类型。例如:

  • (Int, Int) -> Int:接收两个 Int 参数并返回 Int 的函数。
  • () -> Unit:无参数且无返回值的函数。

高阶函数示例

1. 函数作为参数

fun calculate(x: Int, y: Int, operation: (Int, Int) -> Int): Int {
    return operation(x, y)
}

fun main() {
    val sum = calculate(5, 3) { a, b -> a + b } // Lambda 表达式
    println(sum) // 输出:8
}

2. 函数作为返回值

fun getOperation(type: String): (Int, Int) -> Int {
    return when (type) {
        "add" -> { a, b -> a + b }
        "multiply" -> { a, b -> a * b }
        else -> { _, _ -> 0 }
    }
}

fun main() {
    val operation = getOperation("multiply")
    println(operation(2, 4)) // 输出:8
}

常见用途

  1. 回调机制:事件处理或异步操作完成后执行特定逻辑。
  2. 集合操作:如 map、filter 等接收 Lambda 的高阶函数。
  3. 策略模式:通过传递不同函数实现动态行为。

小结

  • 局部函数:嵌套在函数内部,封装局部逻辑,可访问外部变量。
  • 高阶函数:以函数为参数或返回值,结合 Lambda 表达式实现灵活的功能组合。

通过掌握局部函数和高阶函数,可以写出更模块化、可复用的 Kotlin 代码,为后续学习函数式编程奠定基础。

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