Kotlin fun 关键字
最后修改于 2025 年 4 月 19 日
fun
关键字是 Kotlin 中定义函数的基础。函数是可重复使用的代码块,用于执行特定任务。本教程将通过实际示例深入探讨 fun
关键字。
基本定义
在 Kotlin 中,fun
关键字声明一个函数。函数可以有参数并返回值。它们封装行为并促进代码重用。 Kotlin 函数支持许多高级特性,如默认参数。
基本函数声明
最简单的函数声明使用 fun
关键字,后跟函数名、括号和函数体。函数可以返回值或执行操作,而无需返回任何内容。
package com.zetcode fun greet() { println("Hello, Kotlin!") } fun main() { greet() // Output: Hello, Kotlin! }
这里我们定义一个简单的 greet
函数,它打印一条消息。main
函数调用它。请注意,fun
关键字位于两个函数声明之前。这是 Kotlin 中最基本的函数形式。
带参数的函数
函数可以接受参数,使其更灵活。参数在函数名后面的括号内声明。每个参数都有一个名称和类型,用冒号分隔。
package com.zetcode fun greetPerson(name: String) { println("Hello, $name!") } fun main() { greetPerson("Alice") // Output: Hello, Alice! greetPerson("Bob") // Output: Hello, Bob! }
greetPerson
函数接受一个名为 name
的 String
参数。我们可以使用不同的名称调用此函数。该函数使用字符串模板将参数包含在输出中。
带返回值的函数
函数可以使用返回类型声明返回值。返回类型在参数列表之后指定,用冒号分隔。使用 return
关键字返回一个值。
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 提供了一种简洁的语法。可以推断返回类型,并且大括号被替换为等号。
package com.zetcode fun multiply(a: Int, b: Int) = a * b fun main() { println(multiply(4, 5)) // Output: 20 }
multiply
函数演示了单表达式语法。返回类型被推断为 Int。这种简洁的形式是简单函数的理想选择。函数体位于 =
符号之后,没有大括号。
默认参数
Kotlin 函数可以具有默认参数值。当调用者没有提供参数时,将使用这些值。默认参数使函数更灵活,同时保持向后兼容性。
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 允许将函数添加到现有类,而无需继承。这些被称为扩展函数。它们通过在函数名前面加上类名和点来声明。
package com.zetcode fun String.addExclamation() = "$this!" fun main() { val message = "Hello" println(message.addExclamation()) // Output: Hello! }
这里我们将 addExclamation
函数添加到 String
类。该函数可以在任何 String 实例上调用。在函数内部,this
指的是接收者对象。扩展函数对于增强现有类非常强大。
高阶函数
Kotlin 函数可以接受其他函数作为参数或返回函数。这些被称为高阶函数。它们支持函数式编程模式和行为参数化。
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 的 fun
关键字,展示了各种函数类型和特性。我们探讨了基本函数、参数、返回值以及扩展函数等高级概念。掌握函数对于编写干净、可维护的 Kotlin 代码至关重要。
作者
列出 所有 Kotlin 教程。