高阶函数(高阶函数)是一个接受函数作为参数或返回函数或可以同时执行这两个函数的函数。 意味着,可以将函数作为参数传递给其他函数,而不是将Int
,String
或其他类型作为参数传递给函数。
看看以下示例:
fun myFun(org: String,portal: String, fn: (String,String) -> String): Unit { val result = fn(org,portal) println(result) }
在上面的例子中,使用三个参数定义了一个函数myFun()
。 第一个和第二个参数取String
,第三个参数是有两个String
类型参数的函数。 参数String -> String
类型表示函数将String
作为输入并将输出作为字符串类型返回。
要调用上面的函数,可以传递函数文字或lambda
。 例如:
fun myFun(org: String,portal: String, fn: (String,String) -> String): Unit { val result = fn(org,portal) println(result) } fun main(args: Array<String>){ val fn:(String,String)->String={org,portal->"$org develop $portal"} myFun("zyiz.org","zyiz.net",fn) }
执行上面示例代码,得到以下结果 -
zyiz.org develop zyiz.net
上面的高阶函数也可以用另一种方式调用,如下面提到的main()
函数中的代码:
myFun("zyiz.org","zyiz.net",{org,portal->"$org develop $portal"})