Léxico TI › Programación › patrón newtype

patrón newtype

Programación Svenska → Actualizado: 2026-08-22

Envolver un tipo existente en un tipo nuevo y distinto sin overhead en tiempo de ejecución — para que el compilador pueda distinguir UserId(u64) de OrderId(u64).

Sintaxis de Haskell: newtype UserId = UserId Int. Rust: struct UserId(u64); (tuple struct). Se diferencia de un alias de tipo (type UserId = u64) porque el compilador crea un tipo nuevo — no se puede pasar por error un id de pedido donde se espera un id de usuario. Puede implementar sus propias instancias de trait/typeclass. Coste cero — compila al mismo código que el tipo primitivo desnudo. Técnica estándar en Rust/Haskell/F# para "domain modelling" y para evitar la "obsesión con primitivos".

← Volver al léxico