6
我只是慢條斯理地約與Tony Morris' excellent exercise on catamorphisms,當我思考什麼在下列情況下發生......Scala的類型推斷問題
def cata[X](some: A => X, none: => X): X
現在讓如下我調用這個方法:
def isDefined: Boolean = cata(_ => true, false)
我想知道類型推理是否確定_ => true
的類型爲A => Boolean
或Any => Boolean
。由於事實Function1
在其輸入參數禁忌變,以下兩個編譯就好了:
def isDefined: Boolean = cata((_: A) => true, false) //#1
def isDefined: Boolean = cata((_: Any) => true, false) //#2
所以現在的問題是,是否inferencer拿出#1和#2的類型?
您正在使用哪個版本的'scalac'? – 2010-05-25 09:56:57
我正在使用2.8.0 RC2 – 2010-05-25 10:48:38