以下行产生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")
}
}
第一个 get 会产生Overload resolution ambiguity
编译错误,但我不明白为什么?很清楚我指的是哪个功能,不是<?p?
解决方法是明确并添加->
:
get {->
println("OK")
}
这可以解决问题,但当然看起来并不像以前的版本那么好。
对我来说似乎是一个编译器错误。
感谢。
Kotlin:1.1.0