2017-05-06 8 views
0

작은 스칼라 작업에서 이상한 컴파일 오류가 발생합니다.스칼라 : 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는 "지능이 매개 변수를 사용하지 않습니다"오류와 함께 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 

을하지만, 서로 다른 시나리오입니다. 여기 광산에서 그것은 Int 매개 변수가 거부되는 방법과 같습니다. 당신이 나에게 많은 도움이 될 힌트를 주실 수 있다면.

+3

'guess' 매개 변수의 이름을 변경하십시오 (또는 메서드 이름이 다르므로). 매개 변수가 범위의 첫 번째'추측 '이므로 컴파일러는 함수를 함수로 호출하려고합니다. – Eric

+0

글쎄, 그건 당황 스럽네요 .-) 내가 정확한 것으로 표시 할 수 있도록 답장으로 의견을 옮기고 싶습니까? – vasigorc

답변

3

guess 매개 변수 (또는 메서드 이름이 다른 경우)의 이름을 바꿉니다. 매개 변수는 범위가 첫 번째 guess이므로 컴파일러는이 매개 변수를 함수로 간주하려고합니다.