高阶函数
参数类型至少有一个是函数类型(包含lamda和匿名)、或返回值是函数类型的函数
// 定义一个高阶函数,它返回一个函数类型 (Int) -> Int
fun createMultiplier(factor: Int): (Int) -> Int {
// 返回一个 lambda,捕获 factor
return { x -> x * factor }
}
fun main() {
val times3 = createMultiplier(3) // times3 是一个函数 (Int) -> Int
val times5 = createMultiplier(5)
println(times3(10)) // 输出 30
println(times5(10)) // 输出 50
}
/ 接收一个转换函数,返回一个新的转换函数(组合)
fun combine(transform: (Int) -> Int): (Int) -> Int {
return { x -> transform(x) + 1 }
}
fun main() {
val square: (Int) -> Int = { it * it }
val combined = combine(square)
println(combined(5)) // 5*5 + 1 = 26
}
有关内联函数

image.png