ZetCode

Kotlin fun 关键字

最后修改于 2025 年 4 月 19 日

fun 关键字是 Kotlin 中定义函数的基础。函数是可重复使用的代码块,用于执行特定任务。本教程将通过实际示例深入探讨 fun 关键字。

基本定义

在 Kotlin 中,fun 关键字声明一个函数。函数可以有参数并返回值。它们封装行为并促进代码重用。 Kotlin 函数支持许多高级特性,如默认参数。

基本函数声明

最简单的函数声明使用 fun 关键字,后跟函数名、括号和函数体。函数可以返回值或执行操作,而无需返回任何内容。

BasicFunction.kt
package com.zetcode

fun greet() {
    println("Hello, Kotlin!")
}

fun main() {
    greet() // Output: Hello, Kotlin!
}

这里我们定义一个简单的 greet 函数,它打印一条消息。main 函数调用它。请注意,fun 关键字位于两个函数声明之前。这是 Kotlin 中最基本的函数形式。

带参数的函数

函数可以接受参数,使其更灵活。参数在函数名后面的括号内声明。每个参数都有一个名称和类型,用冒号分隔。

FunctionWithParams.kt
package com.zetcode

fun greetPerson(name: String) {
    println("Hello, $name!")
}

fun main() {
    greetPerson("Alice") // Output: Hello, Alice!
    greetPerson("Bob")   // Output: Hello, Bob!
}

greetPerson 函数接受一个名为 nameString 参数。我们可以使用不同的名称调用此函数。该函数使用字符串模板将参数包含在输出中。

带返回值的函数

函数可以使用返回类型声明返回值。返回类型在参数列表之后指定,用冒号分隔。使用 return 关键字返回一个值。

FunctionWithReturn.kt
package com.zetcode

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

fun main() {
    val result = add(5, 3)
    println(result) // Output: 8
}

这个 add 函数接受两个 Int 参数并返回它们的总和。返回类型 Int 在参数之后声明。main 函数调用 add 并存储结果。

单表达式函数

对于由单个表达式组成的简单函数,Kotlin 提供了一种简洁的语法。可以推断返回类型,并且大括号被替换为等号。

SingleExpression.kt
package com.zetcode

fun multiply(a: Int, b: Int) = a * b

fun main() {
    println(multiply(4, 5)) // Output: 20
}

multiply 函数演示了单表达式语法。返回类型被推断为 Int。这种简洁的形式是简单函数的理想选择。函数体位于 = 符号之后,没有大括号。

默认参数

Kotlin 函数可以具有默认参数值。当调用者没有提供参数时,将使用这些值。默认参数使函数更灵活,同时保持向后兼容性。

DefaultParams.kt
package com.zetcode

fun greet(name: String = "Guest") {
    println("Hello, $name!")
}

fun main() {
    greet()          // Output: Hello, Guest!
    greet("Alice")   // Output: Hello, Alice!
}

greet 函数的 name 参数有一个默认值。在没有参数调用时,它使用“Guest”。当提供名称时,它会使用该名称。默认参数减少了重载函数。

扩展函数

Kotlin 允许将函数添加到现有类,而无需继承。这些被称为扩展函数。它们通过在函数名前面加上类名和点来声明。

ExtensionFunction.kt
package com.zetcode

fun String.addExclamation() = "$this!"

fun main() {
    val message = "Hello"
    println(message.addExclamation()) // Output: Hello!
}

这里我们将 addExclamation 函数添加到 String 类。该函数可以在任何 String 实例上调用。在函数内部,this 指的是接收者对象。扩展函数对于增强现有类非常强大。

高阶函数

Kotlin 函数可以接受其他函数作为参数或返回函数。这些被称为高阶函数。它们支持函数式编程模式和行为参数化。

HigherOrderFunction.kt
package com.zetcode

fun operateOnNumbers(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}

fun main() {
    val sum = operateOnNumbers(5, 3) { x, y -> x + y }
    val product = operateOnNumbers(5, 3) { x, y -> x * y }
    
    println(sum)    // Output: 8
    println(product) // Output: 15
}

operateOnNumbers 函数接受两个 Int 和一个操作函数。它将该操作应用于这些数字。在 main 中,我们传递不同的 lambda 表达式来执行加法和乘法。高阶函数支持灵活的行为组合。

函数的最佳实践

来源

Kotlin 函数文档

本教程深入介绍了 Kotlin 的 fun 关键字,展示了各种函数类型和特性。我们探讨了基本函数、参数、返回值以及扩展函数等高级概念。掌握函数对于编写干净、可维护的 Kotlin 代码至关重要。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有多年的编程经验。自 2007 年以来,我一直在撰写编程文章。到目前为止,我撰写了 1400 多篇文章和 8 本电子书。 我拥有超过八年的编程教学经验。

列出 所有 Kotlin 教程