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
變量的值。