我注意到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(_))
这是一个合理的行为还是一个编译器错误?它对我来说并没有多大意义。怎么能解释这个?
答案 0 :(得分:-2)
它扩展为:
Seq("?").toSet foreach (println(x=>x))