重载lambda参数的数量的分辨率模糊

以下行会产生Overload resolution ambiguity编译器错误:

 class Req {} class Rsp {} fun get(filter: (Req, Rsp) -> Unit) { filter(Req(), Rsp()) } fun get(init: Req.()-> Unit) { val req = Req() req.init() } fun main(args: Array<String>) { get { println("Overload resolution ambiguity") } get {req, rsp -> println("OK") } } 

第一次得到产生Overload resolution ambiguity编译器错误,但我不明白为什么? 很明显,我指的是哪个功能,不是?

解决方法是明确并添加一个->

 get {-> println("OK") } 

这解决了这个问题,但是当然不像以前的版本那么好。

看来一个编译器错误给我。

谢谢。

Kotlin:1.1.0