6
¿Cómo puede Seq [+ A] ser covariante en A si A se produce en la posición contravariant:¿Cómo puede Seq [+ A] ser covariante en A?
def :+ (elem: A) : Seq[A] ?
Según entiendo, un tipo de argumento método es una posición contravariant. Qué me estoy perdiendo ?
Para seguir con lo que dijo Daniel, los métodos de recolección devuelven _una nueva colección_ y estos pueden tener un tipo ampliado. Entonces, sí, un 'Seq [A]' solo puede contener 'A's, pero su nuevo' Seq' podría tener su tipo ampliado para que pueda contener algo más que 'A'. –
Es una pena que la firma del caso de uso use ': + (elem: A): Seq [A]' en lugar de ': + [B>: A] (elem: B): Seq [B]' aunque . –
@Kris Estoy de acuerdo: ': + [B>: A] (elem: B): Seq [B]' es mucho más intuitivo. ¿Podemos pedirle a los chicos de Scala que cambien los documentos de API? – Michael