Scala:Int 在递归调用中不带参数
Scala: Int doesn't take parameters on a recursive call
我在做的小 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 doesn't take parameters"。来自控制台的 运行 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
同一错误消息有几种不同的 Whosebug 票证,但它们适用于不同的场景。在我这里,它看起来像一个接受 Int
参数的方法被拒绝了。如果你能给我一个提示,这将对我有很大帮助。
重命名 guess
参数(或方法名称,所以有所不同)- 参数是作用域中的第一个 guess
,因此编译器认为您正在尝试将其称为一个函数。
我在做的小 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 doesn't take parameters"。来自控制台的 运行 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
同一错误消息有几种不同的 Whosebug 票证,但它们适用于不同的场景。在我这里,它看起来像一个接受 Int
参数的方法被拒绝了。如果你能给我一个提示,这将对我有很大帮助。
重命名 guess
参数(或方法名称,所以有所不同)- 参数是作用域中的第一个 guess
,因此编译器认为您正在尝试将其称为一个函数。