E101: Duplicate Named Type Parameter

E101: Duplicate Named Type Parameter (이름 붙은 타입 파라미터 중복)

이름이 붙은 타입 인자 목록에서 같은 타입 파라미터를 여러 번 정의했을 때 나오는 에러예요.

출처: Scala 3 Reference

본문

이름 붙은 타입 인자(타입 파라미터 이름 뒤에 =와 타입을 붙이는 방식)를 사용할 때, 각 타입 파라미터는 딱 한 번만 지정할 수 있어요.

예시

import scala.language.experimental.namedTypeArguments

def example[A, B](a: A, b: B): (A, B) = (a, b)

val result = example[A = Int, A = String](1, "hello")

에러 메시지

-- [E101] Syntax Error: example.scala:5:34 -------------------------------------
5 |val result = example[A = Int, A = String](1, "hello")
  |                                  ^^^^^^
  |                              Type parameter A was defined multiple times.

해결 방법

각 타입 파라미터 이름은 한 번만 사용해요.

// Use each type parameter name only once
import scala.language.experimental.namedTypeArguments

def example[A, B](a: A, b: B): (A, B) = (a, b)

val result = example[A = Int, B = String](1, "hello")

더 알아보기

  • 이름 붙은 타입 인자 기능은 실험적이에요. 자세한 내용은 Scala 3 Reference의 namedTypeArguments 관련 문서를 참고해요.