0
私が取り組んでいるScalaの小さな練習では、奇妙なコンパイルエラーが発生します。Scala:Intは再帰呼び出しでパラメータを取らない
私は、正しい答えが提供されるまでユーザーの入力を求め続けることになっているこの方法を持っています。ああ、私は私のパターンマッチングで最初のケースでつまずいています:
は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は「INTはパラメータを取りません」エラーでguess(a)
を強調しています。コンソールから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'パラメータ(またはメソッド名なので、別のものです)の名前を変更します - パラメータはスコープ内の最初の'推測 'です。したがって、コンパイラはそれを関数として呼び出そうとしています。 – Eric
まあ、それは恥ずかしかったです:-)私は正しいとマークすることができるようにあなたのコメントを答えに移動したいですか? – vasigorc