【问题标题】:Why this scala code reports compilation error: recursive value x needs type为什么这个scala代码报告编译错误:递归值x需要类型
【发布时间】:2012-02-05 09:56:03
【问题描述】:

scala 代码很简单:

case class X(id: Option[String] = None, username: Option[String])

object X {
  def create(x: X): X = {
    x.copy(id = Some("111"))
  }
}

class Test {

  def test() {
    val x = X.create(X(
      username = Some("Hello, world!")))

    val id = x.id.get  // !!! reports: recursive value x needs type
  }

}

请注意以下行:

 val id = x.id.get

为什么会报告recursive value x needs type

如果我更改变量名,为:

val dd = x.id.get

会好的。

PS:scala版本为:2.9.1.final

【问题讨论】:

  • 有趣...我刚刚发了推文,以防万一...bit.ly/zU52GP
  • 实际上这是 SI-5091 的副本 ...您应该将此示例添加到该票证中。
  • 是的,但是那个问题是在 11 年 10 月 19 日提交的,那是 4 个月前。没有人关心它。
  • 创建副本不会让重要的人更关心错误,事实上,如果你的动机是吸引注意力,则很可能恰恰相反。如果您想要更快的解决方案,请将您的新信息添加到原始票证中,和/或提供补丁。

标签: scala type-inference


【解决方案1】:

在案例类X 的定义中删除id 的默认参数也解决了表明这是SI-5091 实例的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 2016-02-03
    相关资源
    最近更新 更多