;ожидается, нонайденный - PullRequest
2 голосов
/ 26 августа 2010

Я пытаюсь написать класс для проекта scala, и я получаю эту ошибку в нескольких местах с такими ключевыми словами, как class, def, while.

Это происходит в таких местах:

var continue = true
while (continue) {
    [..]
}

И я уверен, что ошибки нет, поскольку, когда я изолирую этот код в другом классе, он не выдаст мне никакой ошибки.

Не могли бы вы дать мне практическое правило для такихошибки?Где мне их найти?Есть ли какие-нибудь распространенные синтаксические ошибки в других местах, когда это происходит?

Ответы [ 4 ]

1 голос
/ 26 августа 2010

Возможно, у вас где-то не совпадают скобки или фигурные скобки, и компилятор не может определить, пока не попадет в структуру, похожую на ту, которую вы показали.

Другая возможность состоит в том, что в Scala иногда возникают проблемы при различении конца оператора с новым в следующей строке и многострочного оператора. В этом случае просто бросьте; в конце первой строки и посмотрите, доволен ли компилятор. (Это не похоже на ваш случай, так как Scala должна быть в состоянии сказать, что после true ничего не должно быть, и что вы закончили присваивать переменную.)

1 голос
/ 26 августа 2010

Можете ли вы дать нам знать, что этот код внутри?Scala ожидает «выражения», то есть вещи, которые разрешают конкретное значение / тип.В случае «var continue = true» это значение не оценивается, поэтому оно не может находиться в конце выражения (т. Е. Внутри выражения if, выражения совпадения или функционального блока).

т.е.

def foo() = {
  var continue = true
  while (continue) {
    [..]
  }
}

Это проблема, поскольку функциональный блок является выражением и должен иметь (игнорируемое?) возвращаемое значение, т.е.

def foo() = {
  var continue = true
  while (continue) {
    [..]
  }
  ()
}

() => aзначение, представляющее тип «Единица».

1 голос
/ 26 августа 2010

Похоже, вы используете зарезервированные ключевые слова в качестве имен переменных. Например, «Продолжить» - это ключевое слово Java.

0 голосов
/ 16 мая 2012

Я получаю эту ошибку, когда забываю поставить знак = после определения функции:

def function(val: String):Boolean {
   // Some stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...