鉴于函数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