Kotlin高階函數

高階函數(高階函數)是一個接受函數作爲參數或返回函數或可以同時執行這兩個函數的函數。 意味着,可以將函數作爲參數傳遞給其他函數,而不是將IntString或其他類型作爲參數傳遞給函數。

看看以下示例:

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","yiibai.com",fn)  
}

執行上面示例代碼,得到以下結果 -

yiibai.org develop yiibai.com

上面的高階函數也可以用另一種方式調用,如下面提到的main()函數中的代碼:

myFun("yiibai.org","yiibai.com",{org,portal->"$org develop $portal"})