Kotlin 函数

在本文中,您将了解函数。什么是函数,其语法以及如何在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() {
    //函数体
}

要在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 = $result")
}

运行该程序时,输出为:

result = 15

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

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

result = addNumbers(number1, number2)

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

将参数传递给Kotlin中的函数

在Kotlin中,参数之间用逗号分隔。同样,形式参数的类型必须显式键入。

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

这里,

return sumInteger

是return语句。此代码终止addNumbers()函数,程序控制跳至main()函数。

在程序中,sumInteger从addNumbers()函数返回。该值已分配给变量result。

从Kotlin中的函数返回值

注意,

  • sumInteger和result均为Int类型。

  • 函数的返回类型在函数定义中指定。

    //返回类型为 Int
    fun addNumbers(n1: Double, n2: Double): Int {
        ... .. ...
    }

如果函数不返回任何值,则其返回类型为Unit。 如果返回类型为 Int,则可以在函数定义中指定返回类型。

示例:使用函数显示姓名

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中函数的简要介绍。