跳到主要内容

Kotlin 函数

提示
  1. 函数定义和作用:Kotlin 函数是执行特定任务的相关语句组。函数用于将大型程序分解为更小的模块,减少重复并提高代码可重用性。
  2. 函数类型:Kotlin 包含两种类型的函数:标准库函数(如 print()sqrt())和用户定义的函数,这些可以根据需要创建和调用。
  3. 函数创建和使用:使用 fun 关键字定义函数,指定其名称、参数(如果有)和返回类型。函数通过其名称调用,可以传递参数并返回结果。

在编程中,函数是一组相关的语句,执行特定任务。

函数用于将大型程序拆分为更小、更模块化的部分。例如,你需要根据用户的输入创建并着色一个圆。你可以创建两个函数来解决这个问题:

  • createCircle() 函数
  • colorCircle() 函数

将复杂的程序分解为更小的组件使我们的程序更加有组织和易于管理。

此外,它避免了重复并使代码可重用。

函数类型

根据函数是由用户定义的还是在 标准库 中可用,有两种类型的函数:

  • Kotlin 标准库函数
  • 用户定义的函数

Kotlin 标准库函数

标准库函数是 Kotlin 中内置的、随时可用的函数。例如,

  • print() 是一个库函数,它将消息打印到标准输出流(监视器)。
  • sqrt() 返回一个数字的平方根(Double 值)
fun main(args: Array<String>) {

var number = 5.5
print("结果 = ${Math.sqrt(number)}")
}

当你运行程序时,输出将是:

结果 = 2.345207879911715

这里是 Kotlin 标准库 的链接,供你探索。

用户定义的函数

如前所述,你可以自己创建函数。这样的函数称为用户定义的函数。

如何在 Kotlin 中创建用户定义的函数?

在你使用(调用)函数之前,你需要定义它。

以下是在 Kotlin 中定义函数的方式:

fun callMe() {
// 函数体
}

要在 Kotlin 中定义函数,使用 fun 关键字。然后是函数的名称标识符。这里,函数的名称是 callMe

在上述程序中,括号 ( ) 是空的。这意味着,这个函数不接受任何参数。你将在本文后面了解到关于参数的内容。

大括号 { } 内的代码是函数的体。

如何调用函数?

你必须调用函数来运行函数体内的代码。以下是如何操作:

callMe()

这个语句调用了之前声明的 callMe() 函数。

Koltin 中的函数调用

示例:简单的函数程序

fun callMe() {
println("从 callMe() 函数内部打印。")
println("这很酷(仍然从内部打印)。")
}

fun main(args: Array<String>) {
callMe()
println("从 callMe() 函数外部打印。")
}

当你运行程序时,输出将是:

从 callMe() 函数内部打印。
这很酷(仍然从内部打印)。
从 callMe() 函数外部打印。

上述代码中的 callMe() 函数不接受任何参数。

此外,该函数不返回任何值(返回类型是 Unit)。

让我们看另一个函数的示例。这个函数将接受参数并返回一个值。

示例:使用函数添加两个数字

fun addNumbers(n1: Double, n2: Double): Int {
val sum = n1 + n2
val sumInteger = sum.toInt()
return sumInteger
}

fun main(args: Array<String>) {
val number1 = 12.2
val number2 = 3.4
val result: Int

result = addNumbers(number1, number2)
println("结果 = $result")
}

当你运行程序时,输出将是:

结果 = 15

带参数和返回值的函数如何工作?

这里,在函数调用期间,两个类型为 Double 的参数 number1number2 被传递给 addNumbers() 函数。这些参数被称为实际参数。

result = addNumbers(number1, number2)

函数定义中的参数 n1n2 接受传递的参数。这些参数被称为形式参数(或参数)。

在 Kotlin 中向函数传递参数 在 Kotlin 中,参数用逗号分隔。此外,形式参数的类型必须明确指定。

请注意,实际参数和形式参数的数据类型应该匹配,即第一个实际参数的数据类型应该与第一个形式参数的类型相匹配。类似地,第二个实际参数的类型必须与第二个形式参数的类型相匹配,依此类推。

这里,

return sumInteger

是返回语句。这段代码终止了 addNumbers() 函数,并且程序的控制权跳转到了 main() 函数。

在程序中,sumIntegeraddNumbers() 函数返回。这个值被赋值给变量 result

在 Kotlin 中从函数返回值 注意,

  • sumIntegerresult 都是 Int 类型的。
  • 函数的返回类型在函数定义中指定。
// 返回类型是 Int
fun addNumbers(n1: Double, n2: Double): Int {
... .. ...
}

如果函数不返回任何值,其返回类型是 Unit。如果返回类型是 Unit,指定函数定义中的返回类型是可选的。

示例:使用函数显示名称

fun main(args: Array<String>) {
println(getName("John", "Doe"))
}

fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

当你运行程序时,输出将是:

John Doe

这里,getName() 函数接受两个 String 参数,并返回一个 String

如果函数返回单个表达式,你可以省略函数体的花括号 { } 并在 = 符号后指定函数体(如上例)。

在这种情况下,显式声明返回类型是可选的,因为编译器可以推断出返回类型。在上面的示例中,你可以将

fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

替换为

fun getName(firstName: String, lastName: String) = "$firstName $lastName"

这只是对 Kotlin 中函数的简要介绍。推荐阅读与函数相关的文章:

  • Kotlin 内联函数
  • Kotlin 中缀函数
  • Kotlin 函数作用域
  • Kotlin 默认参数和命名参数
  • Kotlin 递归
  • Kotlin 尾递归函数
  • Kotlin 扩展函数
  • Kotlin 高阶函数和 Lambda 表达式