根据我的理解,如果Kotlin方法需要一个参数并且该参数是一个具有单个方法的接口,我可以传入一个lambda表达式(如许多在线教程使用setOnClickListener
所示和类似的东西)。但是,编译以下代码:
interface I {
fun ha()
}
class C() {
fun set(i: I) { i.ha() }
}
fun main(args: Array<String>) {
val c = C()
c.set { println("Hi") }
}
结果为:error: type mismatch: inferred type is () -> Unit but I was expected
。
我错过了什么吗?