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