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 编程中的基本构建块之一,用于封装可重用的代码逻辑。本章将详细介绍如何定义和调用函数,并展示 Kotlin 函数的灵活特性。

1. 基本函数定义

Kotlin 使用 fun 关键字声明函数,语法如下:

fun functionName(parameters): ReturnType {
    // 函数体
    return result
}

示例:简单加法函数

fun add(a: Int, b: Int): Int {
    return a + b
}

2. 函数调用

调用函数时直接使用函数名和参数:

val sum = add(3, 5)  // 返回 8

3. 表达式函数体

当函数只有单个表达式时,可以使用简写形式:

fun multiply(x: Int, y: Int) = x * y

4. Unit 返回类型

当函数不返回任何有意义的值时,返回类型为 Unit(可省略):

fun printMessage(msg: String): Unit {
    println(msg)
}
// 等价于
fun printMessage(msg: String) {
    println(msg)
}

5. 函数作用域

Kotlin 函数可以定义在:

  • 顶层(不属于任何类)
  • 类成员
  • 局部(在其他函数内部)

示例:不同作用域的函数

// 顶层函数
fun topLevelFunction() = println("Top-level")

class MyClass {
    // 成员函数
    fun memberFunction() = println("Member")
    
    fun test() {
        // 局部函数
        fun localFunction() = println("Local")
        localFunction()
    }
}

6. 函数调用方式

Kotlin 支持两种调用方式:

  1. 传统位置参数调用
  2. 具名参数调用(可提高可读性)
fun createUser(name: String, age: Int, email: String) { ... }

// 传统调用
createUser("Alice", 30, "alice@example.com")

// 具名参数调用
createUser(
    name = "Bob",
    email = "bob@example.com",
    age = 25
)

7. 可变参数

使用 vararg 关键字定义可变数量参数:

fun printAll(vararg messages: String) {
    for (m in messages) println(m)
}

printAll("Hello", "Kotlin", "World")

最佳实践

  1. 保持函数短小专注(单一职责原则)
  2. 使用有意义的函数名和参数名
  3. 考虑使用表达式函数体简化简单函数
  4. 合理使用具名参数提高调用可读性

常见问题

Q: Kotlin 函数可以有默认参数吗? A: 是的,下一节将详细介绍默认参数功能。

Q: 如何从 Java 调用 Kotlin 函数? A: Kotlin 函数会被编译为 JVM 字节码,Java 可以直接调用。顶层函数会被编译为包含类的静态方法。

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