Kotlin 函数

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

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

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

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

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


函数类型

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

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

Kotlin 标准库函数

标准库函数是 Kotlin 中内置的、可直接使用的函数。例如,

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

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

运行程序后,输出将是

Result = 2.345207879911715

这是供您探索的Kotlin标准库链接。


用户定义的函数

如前所述,您可以自己创建函数。此类函数称为用户定义的函数。


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

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

下面是如何在 Kotlin 中定义函数

fun callMe() {
    // function body
}

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

在上面的程序中,括号 ( ) 是空的。这意味着该函数不接受任何参数。您将在本文后面学习参数。

花括号 { } 中的代码是函数体。


如何调用函数?

您必须调用函数才能运行函数体内的代码。方法如下

callme()

此语句调用之前声明的 callMe() 函数。

Function call in Koltin

示例:简单的函数程序

fun callMe() {
    println("Printing from callMe() function.")
    println("This is cool (still printing from inside).")
}

fun main(args: Array<String>) {
    callMe()
    println("Printing outside from callMe() function.")
}

运行程序后,输出将是

Printing from callMe() function.
This is cool (still printing from inside).
Printing outside from callMe() function.

上面代码中的 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 = $result")
}

运行程序后,输出将是

result = 15

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

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

result = addNumbers(number1, number2)

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

Passing arguments to a function in Kotlin

在 Kotlin 中,参数用逗号分隔。另外,形式参数的类型必须显式指定。

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


这里,

return sumInteger

是 return 语句。此代码会终止 addNumbers() 函数,程序的控制权会跳转到 main() 函数。

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

Return value from a function in Kotlin

注意,

  • sumIntegerresult 都属于 Int 类型。
  • 函数的返回类型在函数定义中指定。
    // return type is 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 表达式
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战