📜  Kotlin 函数

📅  最后修改于: 2022-05-13 01:55:03.689000             🧑  作者: Mango

Kotlin 函数

函数是执行特殊任务的代码单元。在编程中,函数用于将代码分解成更小的模块,使程序更易于管理。例如:如果我们必须计算两个数字的总和,那么定义一个有趣的sum()

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

我们可以多次调用 sum(x, y),它会返回两个数字的总和。因此,函数避免了代码的重复,使代码更具可重用性。在 Kotlin 中,有两种类型的函数-

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

Kotlin 标准库函数——

在 Kotlin 中,标准库中已经定义了不同数量的内置函数可供使用。我们可以根据要求通过传递参数来调用它们。在下面的程序中,我们将使用内置函数arrayOf()sum()println() 。函数arrayOf()需要一些参数,如整数,双精度等来创建一个数组,我们可以使用sum()找到所有元素的总和,它不需要任何参数。

Kotlin
fun main(args: Array) {
    var sum = arrayOf(1,2,3,4,5,6,7,8,9,10).sum()
 
    println("The sum of all the elements of an array is: $sum")
}


Kotlin
fun main(args: Array) {
    var num1 = 26
    var num2 = 3
 
    var result = num1.rem(num2)
    println("The remainder when $num1 is divided by $num2 is: $result")
}


Kotlin
fun mul(num1: Int, num2: Int): Int {
    var number = num1.times(num2)
    return number
}


Kotlin
fun student(name: String , roll_no: Int , grade: Char) {
    println("Name of the student is : $name")
    println("Roll no of the student is: $roll_no")
    println("Grade of the student is: $grade")
}


Kotlin
fun mul(a: Int, b: Int): Int {
    var number = a.times(b)
    return number
}
fun main(args: Array) {
    var result = mul(3,5)
    println("The multiplication of two numbers is: $result")
}


Kotlin
fun student( name: String , grade: Char , roll_no: Int) {
    println("Name of the student is : $name")
    println("Grade of the student is: $grade")
    println("Roll no of the student is: $roll_no")
 
}
fun main(args: Array) {
    val name = "Praveen"
    val rollno = 25
    val grade = 'A'
    student(name,grade,rollno)
    student("Gaurav",'B',30)
}


输出:

The sum of all the elements of an array is: 55

在下面的程序中,我们将使用rem()来查找余数。

科特林

fun main(args: Array) {
    var num1 = 26
    var num2 = 3
 
    var result = num1.rem(num2)
    println("The remainder when $num1 is divided by $num2 is: $result")
}

输出:

The remainder when 26 is divided by 3 is: 2

不同标准库函数的列表及其用途——

  • sqrt() - 用于计算数字的平方根。
  • print() - 用于将消息打印到标准输出。
  • rem() – 求一个数除以另一个数的余数。
  • toInt() – 将数字转换为整数值。
  • readline() – 用于标准输入。
  • compareTo() – 比较两个数字并返回布尔值。

Kotlin 用户定义函数–

由用户定义的函数称为用户定义函数。众所周知,要将大程序划分为小模块,我们需要定义函数。每个定义的函数都有自己的属性,如函数名、函数返回类型、传递给函数的函数数量等。

创建用户定义函数-

在 Kotlin 中,函数可以声明在顶部,不需要像Java或 Scala 等其他语言那样创建一个类来保存函数。通常我们定义一个函数为:

fun fun_name(a: data_type, b: data_type, ......): return_type  {
    // other codes
    return
}
  • fun – 定义函数的关键字。
  • fun_name – 稍后用于调用该函数的函数的名称。
  • a: data_type – 这里,a 是传递的参数,data_type 指定参数的数据类型,如 integer 或字符串。
  • return_type – 指定函数返回的数据值的类型。
  • {....} - 花括号代表函数块。

Kotlin函数mul() 将两个具有相同类型参数的数字相乘 -

科特林

fun mul(num1: Int, num2: Int): Int {
    var number = num1.times(num2)
    return number
}

说明:我们在上面定义了一个以fun关键字开头的函数,其返回类型为整数。

>> mul() is the name of the function
>> num1 and num2 are names of the parameters being accepted by the function
  and both are Integer type.

Kotlin函数student() 具有不同类型的参数-

科特林

fun student(name: String , roll_no: Int , grade: Char) {
    println("Name of the student is : $name")
    println("Roll no of the student is: $roll_no")
    println("Grade of the student is: $grade")
}

说明- 我们使用 fun 关键字定义了一个函数,其返回类型默认为 Unit。

>> student is the name of the function.
>> name is the parameter of String data type.
>> roll_no is the parameter of Integer data type
>> grade is the parameter of Character data type

调用用户定义的函数-

我们创建一个函数来分配特定任务。每当调用一个函数时,程序就会离开当前代码段并开始执行该函数。函数的流控制 -

  1. 程序来到包含函数调用的行。
  2. 调用函数时,控制权转移到该函数。
  3. 一个一个地执行函数的所有指令。
  4. 只有当函数到达右大括号或有任何返回语句时,控制才会被转移回。
  5. 函数返回的任何数据都用于代替原始代码行中的函数。

Kotlin 程序通过传递两个参数来调用 mul()函数-

科特林

fun mul(a: Int, b: Int): Int {
    var number = a.times(b)
    return number
}
fun main(args: Array) {
    var result = mul(3,5)
    println("The multiplication of two numbers is: $result")
}

输出:

The multiplication of two numbers is: 15 

说明- 在上面的程序中,我们通过传递两个参数来调用 mul(3, 5)函数。当函数被调用时,控制转移到 mul() 并开始执行块中的语句。使用内置的times()它计算两个数字的倍数并存储在一个变量中。然后它退出函数并返回整数值,并将控制转移回调用 mul() 的 main()。然后我们将函数返回的值存储到可变变量 result 中,println() 将其打印到标准输出。 Kotlin 程序通过传递所有参数来调用 student()函数-

科特林

fun student( name: String , grade: Char , roll_no: Int) {
    println("Name of the student is : $name")
    println("Grade of the student is: $grade")
    println("Roll no of the student is: $roll_no")
 
}
fun main(args: Array) {
    val name = "Praveen"
    val rollno = 25
    val grade = 'A'
    student(name,grade,rollno)
    student("Gaurav",'B',30)
}

输出:

Name of the student is : Praveen
Grade of the student is: A
Roll no of the student is: 25
Name of the student is : Gaurav
Grade of the student is: B
Roll no of the student is: 30

说明- 在上面的程序中,我们通过按要求按相同顺序传递参数来调用 student()函数。如果我们试图混淆参数,那么它会给出类型不匹配错误。在第一次调用中,我们使用变量传递参数,在第二次调用中,我们传递参数值而不存储在变量中。因此,这两种方法调用函数都是正确的。