3
爲什麼編譯器無法正確推斷出x
和y
的類型?
我讀過一些關於Scala類型推斷的文章,但仍然無法弄清楚它爲什麼不可能。在Scala中推斷正確類型的lambda表達式
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
}
}
但爲什麼'val f =(x,y)=> add(x,y)'可以接受? – 2013-03-26 12:20:09
因爲編譯器看到它可能是實際上是通過的,因此它和'val f = add _'一樣,而且這已經實現了,它就像那樣處理,只是猜測而已。 – drexin 2013-03-26 12:24:10