高階函式(高階函式)是一個接受函式作為引數或返回函式或可以同時執行這兩個函式的函式。 意味著,可以將函式作為引數傳遞給其他函式,而不是將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("yiibai.org","tw511.com",fn)
}
執行上面範例程式碼,得到以下結果 -
yiibai.org develop tw511.com
上面的高階函式也可以用另一種方式呼叫,如下面提到的main()
函式中的程式碼:
myFun("yiibai.org","tw511.com",{org,portal->"$org develop $portal"})