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

Jef*_*rey 82 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))
Run Code Online (Sandbox Code Playgroud)

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

ret*_*nym 107

它扩展到:

myStrings.foreach(println(x => x.toString))
Run Code Online (Sandbox Code Playgroud)

你要:

myStrings.foreach(x => println(x.toString))
Run Code Online (Sandbox Code Playgroud)

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