鑑於函數foo:Kotlin:如何將一個函數作爲參數傳遞給另一個?
fun foo(m: String, bar: (m: String) -> Unit) {
bar(m)
}
我們可以這樣做:
foo("a message", { println("this is a message: $it") })
//or
foo("a message") { println("this is a message: $it") }
現在,讓我們說我們有以下功能:
fun buz(m: String) {
println("another message: $m")
}
有沒有一種方法,我可以通過「BUZ 「作爲」foo「的參數? 類似於:
foo("a message", buz)
請糾正我,如果我錯了,但似乎只有頂級功能(即不屬於一類)可以通過這種方式傳遞;類方法不能: - ( – 2015-12-02 20:19:45
)成員引用可以傳遞,但在這種情況下,這將是一個2參數函數,第一個參數需要類的一個實例。更好的方法是用lambda包裝成員函數假設上面所有的都是在一個類中: 'fun something(){foo(「hi」,{buz(it)})}' – 2015-12-25 14:31:23
是否有這樣做,如果buz是通用的類型推斷失敗了嗎? – 2016-08-18 21:45:57