Я получаю странную ошибку компиляции в небольшом упражнении Scala, над которым я работаю.
У меня есть этот метод, который должен продолжать запрашивать пользовательский ввод, пока не будет предоставлен правильный ответ. Увы, я наткнулся на первый случай сопоставления с образцом:
override def guess(guess: Int):Unit = {
val guessIndex = binary(array, guess)
guessIndex match {
case -1 => {
val nextAttempt = StdIn.readLine(s"Please be attentive $guess is outside the search range"
+" (0 to $upperBound). Try again: \n");
val a = validateType[Int](nextAttempt)
guess(a)
}
}
}
IDE подчеркивает guess(a)
ошибкой "Int не принимает параметры". Запуск sbt compile
из консоли подтверждает эту ошибку:
> compile
[info] Compiling 2 Scala sources to /home/vgorcinschi/Documents/eclipseProjects/Algorithms/Chapter 1 Fundamentals/algorithms1_4_34/target/scala-2.12/classes...
[error] /home/vgorcinschi/Documents/eclipseProjects/Algorithms/Chapter 1 Fundamentals/algorithms1_4_34/src/main/scala/ca/vgorcinschi/algorithms1_4_34/hotandcold/HotAndColdImpl.scala:23: Int does not take parameters
[error] guess(a)
[error] ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed
[error] Total time: 0 s, completed 6-May-2017 6:47:58 PM
Существует несколько разных билетов Stackoverflow для одного и того же сообщения об ошибке, но они предназначены для разных сценариев. В моем здесь похоже, что метод, который принимает параметр Int
, отклоняется. Если бы вы могли, пожалуйста, дайте мне подсказку, это бы мне очень помогло.
guess
(или имя метода, так что это что-то другое) — параметр является первымguess
в области видимости, поэтому компилятор думает, что вы пытаетесь вызвать его как функцию. - person Eric   schedule 07.05.2017