Kotlin 的高阶函数是指接受一个或多个函数作为参数,或者将函数作为返回值的函数。使用高阶函数可以提高代码的复用性和灵活性。
以下是 Kotlin 高阶函数的一些常见用法:
可以将一个函数作为参数传递给另一个函数。例如,可以定义一个函数,该函数接受另一个函数作为参数,并调用它:
fun execute(func: () -> Unit) {
func()
}
fun main() {
execute {
println("Hello, world!")
}
}
在上面的代码中,execute
函数接受一个 lambda 表达式作为参数,该 lambda 表达式没有参数并返回 Unit
类型。在 main
函数中,我们传递了一个匿名函数 { println("Hello, world!") }
给 execute
函数,该匿名函数打印一条消息。
可以将一个函数作为返回值。例如,可以定义一个函数,该函数返回一个 lambda 表达式:
fun getFunction(): () -> Unit {
return {
println("Hello, world!")
}
}
fun main() {
val func = getFunction()
func()
}
在上面的代码中,getFunction
函数返回一个匿名函数 { println("Hello, world!") }
。在 main
函数中,我们调用 getFunction
函数并将返回的 lambda 表达式赋值给 func
变量,然后调用 func
函数。
可以将函数类型作为参数类型。例如,可以定义一个函数,该函数接受一个函数作为参数:
fun applyFunction(func: Int -> Int, value: Int): Int {
return func(value)
}
fun main() {
val result = applyFunction({ x: Int -> x * 2 }, 5)
println(result) // 输出 10
}
在上面的代码中,applyFunction
函数接受一个函数类型 Int -> Int
作为参数,该函数类型表示一个接受 Int
类型参数并返回 Int
类型结果的函数。在 main
函数中,我们传递了一个匿名函数 { x: Int -> x * 2 }
给 applyFunction
函数,该匿名函数将传入的参数乘以 2。然后我们将 5
作为第二个参数传递给 applyFunction
函数,并将返回的结果赋值给 result
变量,最后打印 result
变量的值。