파라미터 개수가 맞지 않아요
파라미터 개수가 맞지 않아요 (E086: Wrong Number Of Parameters)
함수 리터럴의 파라미터 개수가 문맥에서 기대하는 개수와 다르면 이 에러가 나요. 특정 함수 타입이 기대되는 자리에 리터럴을 줄 때, 파라미터 개수는 기대 타입과 맞아야 해요.
본문
함수 리터럴의 파라미터 개수가 문맥이 기대하는 개수와 다르면 이 에러가 발생해요.
특정 함수 타입이 기대되는 자리에 함수 리터럴을 제공할 때, 리터럴의 파라미터 개수는 기대되는 함수 타입의 파라미터 개수와 일치해야 해요.
예시 (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