3

为什么编译器不能正确推断和的x类型y
我已经阅读了一些关于 Scala 类型推断的文章,但仍然无法弄清楚为什么它是不可能的。

object Test {
    def main(args: Array[String]) {
        def add(x: Int, y: Int) = x + y
        val f = (x,y) => add(y,x) // error: missing parameter type
    }
}
4

1 回答 1

2

因为add可能会被其他类型重载,因此实现它甚至处理像你这样的简单情况会给编译器增加很多复杂性。

编辑

你可能知道,haskell 能够推断出这种声明的类型,但这仅仅是因为 haskell 不支持重载。

于 2013-03-26T12:18:02.627 回答