92

我知道对此有很多问题,但我创建了一个我认为应该可以工作的简单示例,但仍然没有,我不确定我是否理解为什么

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))

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

4

1 回答 1

123

它扩展为:

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

你要:

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

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

于 2011-10-02T15:09:48.513 回答