Scala下划线 - 错误:缺少扩展函数的参数类型

时间:2011-10-02 15:03:01

标签: scala scala-placeholder-syntax

我知道这方面有很多问题,但我创造了一个我认为应该有效的简单例子,但仍然没有,我不确定我理解为什么

val myStrings = new Array[String](3)
// do some string initialization

// this works
myStrings.foreach(println(_))


// ERROR: missing parameter type for expanded function
myStrings.foreach(println(_.toString))

有人可以解释为什么第二个语句不能编译吗?

1 个答案:

答案 0 :(得分:102)

它扩展为:

myStrings.foreach(println(x => x.toString))

你想:

myStrings.foreach(x => println(x.toString))

匿名函数的占位符语法用函数替换最小的包含表达式。