Kotlin 的高階函數(shù)是指接受一個或多個函數(shù)作為參數(shù),或者將函數(shù)作為返回值的函數(shù)。使用高階函數(shù)可以提高代碼的復(fù)用性和靈活性。
以下是 Kotlin 高階函數(shù)的一些常見用法:
可以將一個函數(shù)作為參數(shù)傳遞給另一個函數(shù)。例如,可以定義一個函數(shù),該函數(shù)接受另一個函數(shù)作為參數(shù),并調(diào)用它:
fun execute(func: () -> Unit) {
func()
}
fun main() {
execute {
println("Hello, world!")
}
}
在上面的代碼中,execute
函數(shù)接受一個 lambda 表達(dá)式作為參數(shù),該 lambda 表達(dá)式?jīng)]有參數(shù)并返回 Unit
類型。在 main
函數(shù)中,我們傳遞了一個匿名函數(shù) { println("Hello, world!") }
給 execute
函數(shù),該匿名函數(shù)打印一條消息。
可以將一個函數(shù)作為返回值。例如,可以定義一個函數(shù),該函數(shù)返回一個 lambda 表達(dá)式:
fun getFunction(): () -> Unit {
return {
println("Hello, world!")
}
}
fun main() {
val func = getFunction()
func()
}
在上面的代碼中,getFunction
函數(shù)返回一個匿名函數(shù) { println("Hello, world!") }
。在 main
函數(shù)中,我們調(diào)用 getFunction
函數(shù)并將返回的 lambda 表達(dá)式賦值給 func
變量,然后調(diào)用 func
函數(shù)。
可以將函數(shù)類型作為參數(shù)類型。例如,可以定義一個函數(shù),該函數(shù)接受一個函數(shù)作為參數(shù):
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
函數(shù)接受一個函數(shù)類型 Int -> Int
作為參數(shù),該函數(shù)類型表示一個接受 Int
類型參數(shù)并返回 Int
類型結(jié)果的函數(shù)。在 main
函數(shù)中,我們傳遞了一個匿名函數(shù) { x: Int -> x * 2 }
給 applyFunction
函數(shù),該匿名函數(shù)將傳入的參數(shù)乘以 2。然后我們將 5
作為第二個參數(shù)傳遞給 applyFunction
函數(shù),并將返回的結(jié)果賦值給 result
變量,最后打印 result
變量的值。