파라미터 개수가 맞지 않아요

파라미터 개수가 맞지 않아요 (E086: Wrong Number Of Parameters)

함수 리터럴의 파라미터 개수가 문맥에서 기대하는 개수와 다르면 이 에러가 나요. 특정 함수 타입이 기대되는 자리에 리터럴을 줄 때, 파라미터 개수는 기대 타입과 맞아야 해요.

출처: Scala 3 Reference

본문

함수 리터럴의 파라미터 개수가 문맥이 기대하는 개수와 다르면 이 에러가 발생해요.

특정 함수 타입이 기대되는 자리에 함수 리터럴을 제공할 때, 리터럴의 파라미터 개수는 기대되는 함수 타입의 파라미터 개수와 일치해야 해요.

예시 (Example)

val f: (Int, Int) => Int = x => x + 1

기대 타입은 파라미터가 2개인데, 주어진 리터럴은 1개네요.

에러 (Error)

-- [E086] Syntax Error: example.scala:1:29 -------------------------------------
1 |val f: (Int, Int) => Int = x => x + 1
  |                           ^^^^^^^^^^
  |                           Wrong number of parameters, expected: 2
  |-----------------------------------------------------------------------------
  | Explanation (enabled by `-explain`)
  |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  | The function literal
  |
  |     x => x + 1
  |
  | has 1 parameter. But the expected type
  |
  |     (Int, Int) => Int
  |
  | requires a function with 2 parameters.
   -----------------------------------------------------------------------------

해결 방법 (Solution)

기대 타입에 맞게 올바른 개수의 파라미터를 줘요.

// Provide the correct number of parameters
val f: (Int, Int) => Int = (x, y) => x + y

또는 기대 타입을 리터럴에 맞추는 방법도 있어요.

// Or change the expected type
val f: Int => Int = x => x + 1