未分配给变量时,扩展函数缺少参数类型

时间:2014-11-19 12:40:06

标签: scala compiler-errors

我注意到Scala编译器的一个奇怪的行为。代码:

Seq("?").toSet foreach (println(_))

产生以下错误:

error: missing parameter type for expanded function ((x$1) => println(x$1))
        Seq("?").toSet foreach (println(_))
                                        ^

同样的事情:

Seq("?").toSet foreach (x => println(x))

我找到了两种方法来解决这个问题。以太方式明确指定类型:

Seq("?").toSet[String] foreach (println(_))

或保存到变量:

val s = Seq("?").toSet
s foreach (println(_))

这是一个合理的行为还是一个编译器错误?它对我来说并没有多大意义。怎么能解释这个?

1 个答案:

答案 0 :(得分:-2)

它扩展为:

Seq("?").toSet foreach (println(x=>x))