Léxico de TI › Programação › Tipo soma

Tipo soma

Programação Svenska → Atualizado: 2026-10-01

Recurso do sistema de tipos: um tipo que é uma entre várias alternativas, cada uma com seus próprios campos. Enum do Rust, data do Haskell, enum do Swift, union do TypeScript, sealed interface do Java. Alternativa moderna a null + hierarquias de classes.

Exemplo clássico: Result<T, E> = Ok(T) | Err(E). Option<T> = Some(T) | None — o substituto do null. União etiquetada (tagged union, ou união discriminada) é sinônimo. Tipos soma forçam correspondência exaustiva: adicionar uma variante obriga a atualizar o código em todo lugar, o que vira refatoração guiada pelo compilador. Não confundir com tipos produto (struct = todos os campos ao mesmo tempo). Equivalente em OOP: classes seladas + padrão visitor. Ausentes em Go, Python (typing.Union chega perto) e Java anterior ao 21. Princípio de projeto: "Make illegal states unrepresentable" (Yaron Minsky).

← Voltar ao léxico