高阶函数
一个函数可以将另一个函数当作参数。将其他函数用作参数的函数称为“高阶函数”。**此模式对组件之间的通信(其方式与在 Java 中使用回调接口相同)很有用。
下面是一个高阶函数的示例:
fun stringMapper(str: String, mapper: (String) -> Int): Int {
// Invoke function
return mapper(str)
}
stringMapper() 函数接受一个 String 以及一个函数,该函数根据您传递给它的 String 来推导 Int 值。
要调用 stringMapper(),可以传递一个 String 和一个满足其他输入参数的函数(即,一个将 String 当作输入并输出 Int 的函数),如以下示例所示:
stringMapper("Android", { input ->
input.length
})
如果匿名函数是在某个函数上定义的最后一个参数,则您可以在用于调用该函数的圆括号之外传递它,如以下示例所示:**
stringMapper("Android") { input ->
input.length
}
在整个 Kotlin 标准库中可以找到很多匿名函数。