Почему этот код scala сообщает об ошибке компиляции: рекурсивное значение x нуждается в типе - PullRequest
17 голосов
/ 05 февраля 2012

Простой код скалы:

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. Финал

1 Ответ

16 голосов
/ 05 февраля 2012

Удаление аргумента по умолчанию для id в определении класса дела X также устраняет проблему, которая предполагает, что это экземпляр SI-5091 .

...