Kotlin 函数


A函数是一个仅在被调用时运行的代码块。

您可以将数据(称为参数)传递到函数中。

函数用于执行某些操作,它们也称为方法


预定义函数

看来你已经知道什么是函数了。在本教程中您一直在使用它!

例如,println()是一个函数。它用于将文本输出/打印到屏幕:

示例

fun main() {
  println("Hello World")
}
亲自试一试 »

创建您自己的函数

要创建您自己的函数,请使用fun关键字,写出函数的名称,后面跟括号():

示例

创建一个名为 "myFunction" 的函数,该函数应输出一些文本:

fun myFunction() {
  println("I just got executed!")
} 

调用函数

现在您已经创建了一个函数,您可以通过以下方式执行它呼叫它。

要在 Kotlin 中调用函数,请编写函数名称,后跟两个括号()

在下面的示例中,myFunction()当调用时,将打印一些文本(操作):

示例

fun main() {
  myFunction() // Call myFunction
}

// Outputs "I just got executed!" 
亲自试一试 »

如果需要,可以多次调用一个函数:

示例

fun main() {
  myFunction()
  myFunction()
  myFunction()
}

// I just got executed!
// I just got executed!
// I just got executed! 
亲自试一试 »


功能参数

信息可以作为参数传递给函数。

参数在函数名称后面的括号内指定。您可以添加任意多个参数,只需用逗号分隔即可。请注意,您必须指定每个参数的类型(Int、String 等)。

以下示例有一个函数,该函数接受String被称为文件名作为参数。调用函数时,我们传递一个名字,该名字在函数内部用于打印全名:

示例

fun myFunction(fname: String) {
  println(fname + " Doe")
}

fun main() {
  myFunction("John")
  myFunction("Jane")
  myFunction("George")
}
  
// John Doe
// Jane Doe
// George Doe 
亲自试一试 »

当一个参数被传递给函数,它被称为实参。所以,从上面的例子来看:fname是一个范围, 尽管 John,Jane George论点


多个参数

您可以拥有任意多个参数:

示例

fun myFunction(fname: String, age: Int) {
  println(fname + " is " + age)
}

fun main() {
  myFunction("John", 35)
  myFunction("Jane", 32)
  myFunction("George", 15)
}

// John is 35
// Jane is 32
// George is 15 
亲自试一试 »

笔记:使用多个参数时,函数调用的参数数量必须与参数数量相同,并且参数必须以相同的顺序传递。


返回值

在上面的示例中,我们使用函数来输出值。在下面的例子中,我们将使用一个函数返回一个值并将其分配给一个变量。

要返回值,请使用return关键字,并指定返回类型在函数的括号之后 (Int在此示例中):

示例

一个函数有一个Int参数,以及Int返回类型:

fun myFunction(x: Int): Int {
  return (x + 5)
}

fun main() {
  var result = myFunction(3)
  println(result)
}

// 8 (3 + 5) 
亲自试一试 »

使用两个参数:

示例

一个函数有两个Int参数,以及Int返回类型:

fun myFunction(x: Int, y: Int): Int {
  return (x + y)
}

fun main() {
  var result = myFunction(3, 5)
  println(result)
}

// 8 (3 + 5) 
亲自试一试 »

返回值的较短语法

还有一种更短的返回值语法。您可以使用=运算符而不是return不指定返回类型。 Kotlin 足够聪明,可以自动找出它是什么:

示例

fun myFunction(x: Int, y: Int) = x + y

fun main() {
  var result = myFunction(3, 5)
  println(result)
}

// 8 (3 + 5) 
亲自试一试 »