0
스칼라 변화에 대한 질문이 있습니다.val 사용의 오차가 있습니다. - 오류 : 반 변형 타입 U가 공변 위치에 있습니다.
아래 코드는 컴파일을 통과하는 유효한 코드입니다.
// <Code A>
// VALID (COMPILE PASS!)
class A[+T, -U](t: T, u: U)
는 그러나 아래의 코드는 val
를 사용하여 컴파일 통과하지 않는, 유효하지 않습니다.
// <Code B>
// INVALID (COMPILE ERROR)
class A[+T, -U](val t: T, val u: U)
오류 메시지는 다음과 같습니다. <Code A>
이 유효하고 <Code B>
이 유효하지 않은 이유를
error: contravariant type U occurs in covariant position in type => U of value u
class A[+T, -U](val t: T, val u: U)
^
이 궁금하다. 누군가 이유를 말해 줄 수 있니?
답변 해 주셔서 감사합니다. – redstone