Kotlin函数
2019-07-09 本文已影响0人
程序员丶星霖
函数是执行特定任务的一段代码。程序通过将一段代码定义成函数,并为该函数指定一个函数名,就可以在需要的时候多次调用这段代码。
函数是代码复用的重要手段。
函数就是Kotlin程序的重要组成单位,一个Kotlin程序可以由很多个函数组成。
一、定义和调用函数
Kotlin声明函数必须使用fun关键字。定义函数的语法格式:
fun 函数名(形参列表)[:返回值类型]{
// 执行语句
}
- 函数名:函数名只要是一个合法的标识符即可。
- 返回值类型:返回值类型可以是Kotlin语言所允许的任何数据类型。
- 形参列表:形参列表用于定义该函数可以接受的参数,形参列表由零组到多组“形参名:参数类型”组合而成,多组参数之间以英文逗号隔开,形参名和形参类型之间以英文冒号隔开。
fun main(args: Array<String>) {
var a = 6
var b = 7
var result = max(a, b)
println("result:${result}")
println(sayHi("关羽"))
}
fun max(x: Int, y: Int): Int {
val z = if (x > y) x else y
return z
}
fun sayHi(name: String): String {
println("执行sayHi()函数")
return "${name},您好!"
}
输出结果:
result:7
执行sayHi()函数
关羽,您好!
二、函数返回值和Unit
函数没有返回值时,有如下两种方式指定返回值:
- 直接省略“:返回值类型”部分
- 使用“:Unit”声明代表没有返回值
fun main(args: Array<String>) {
test()
sayHi("马超")
}
fun test(){
println("执行test()函数")
}
fun sayHi(name: String): Unit {
println("执行sayHi()函数")
println( "${name},您好!欢迎光临")
}
输出结果:
执行test()函数
执行sayHi()函数
马超,您好!欢迎光临
三、递归函数
在一个函数体内调用它本身,被称为函数递归。
函数递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。
fun main(args: Array<String>) {
//输出fn(10)的结果
println("fn(10)的结果是:${fn(10)}")
}
fun fn(n: Int): Int {
if (n == 0) {
return 1
} else if (n == 1) {
return 4
} else {
return 2 * fn(n - 1) + fn(n - 2)
}
}
输出结果:
fn(10)的结果是:10497
当一个函数不断地调用它自身时,必须在某个时刻函数的返回值是确定的,即不再调用它自身;否则就变成了无穷递归,类似于死循环。
只要在一个函数的函数体实现中再次调用了函数本身,就是递归函数。递归一定要向已知方向进行。
四、单表达式函数
在某些情况下,函数只是返回单个表达式,此时可以省略花括号并在等号后指定函数体即可。
fun main(args: Array<String>) {
println(area(2.0, 5.0))
}
fun area(x: Double, y: Double): Double = x * y
输出结果:
10.0
学海无涯苦作舟
