我知道这方面有很多问题,但我创造了一个我认为应该有效的简单例子,但仍然没有,我不确定我理解为什么
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))
有人可以解释为什么第二个语句不能编译吗?
答案 0 :(得分:102)
它扩展为:
myStrings.foreach(println(x => x.toString))
你想:
myStrings.foreach(x => println(x.toString))
匿名函数的占位符语法用函数替换最小的包含表达式。