O Que É Variância em Type Systems?
Variância é a regra que rege se um tipo genérico construído a partir de um subtipo é ele próprio um subtipo do mesmo genérico construído a partir de um supertipo. Os três tipos são covariância, contravariância e invariância, dependendo de como o parâmetro de tipo é usado. A variância determina quais substituições entre tipos parametrizados o type system permite com segurança.
Por que isso importa
Acertar a variância permite que coleções genéricas e tipos de função sejam substituídos com segurança sem erros de tipo em tempo de execução. Ela explica por que algumas atribuições aparentemente intuitivas entre tipos genéricos são rejeitadas.
Guias relacionados
What Is Covariance?Covariance preserves subtyping direction, so a generic over a subtype is a subtype of the same generic over a…
What Is Contravariance?Contravariance reverses subtyping direction, so a consumer of a supertype can stand in where a consumer of a…
What Is Bounded Quantification?Bounded quantification constrains a generic type parameter to be a subtype of some bound, so code can rely on…