J'ai une question sur les variances Scala.Variable invalide dans l'utilisation de val - erreur: le type contravariant U se produit dans la position covariant
Le code ci-dessous est un code valide, qui passe la compilation.
// <Code A>
// VALID (COMPILE PASS!)
class A[+T, -U](t: T, u: U)
Mais le code ci-dessous n'est pas valide, qui utilisent val
et ne passe pas la compilation.
// <Code B>
// INVALID (COMPILE ERROR)
class A[+T, -U](val t: T, val u: U)
Le message d'erreur est le suivant.
error: contravariant type U occurs in covariant position in type => U of value u
class A[+T, -U](val t: T, val u: U)
^
Je me demande pourquoi <Code A>
est valide et <Code B>
est pas valide. Quelqu'un pourrait-il me dire la raison?
Merci pour votre réponse! – redstone