【问题标题】:Scala underscore - ERROR: missing parameter type for expanded functionScala下划线 - 错误:缺少扩展函数的参数类型
【发布时间】:2011-11-29 10:31:45
【问题描述】:

我知道对此有很多问题,但我创建了一个我认为应该有效的简单示例,但仍然无效,我不确定我是否理解原因

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

谁能解释为什么第二个语句不能编译?

【问题讨论】:

  • 更简单:myStrings.foreach (println)

标签: scala scala-placeholder-syntax


【解决方案1】:

它扩展为:

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

你想要:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多