Lessico IT › Programmazione › Pattern newtype

Pattern newtype

Programmazione Svenska → Aggiornato: 2026-10-02

Avvolgere un tipo esistente in un nuovo tipo distinto, senza costi a runtime, così che il compilatore distingua UserId(u64) da OrderId(u64).

Sintassi Haskell: newtype UserId = UserId Int. Rust: struct UserId(u64); (tuple struct). Diverso da un alias di tipo (type UserId = u64) perché il compilatore crea un tipo nuovo: non si può passare per errore un id d'ordine dove ci si aspetta un id utente. Può implementare le proprie istanze di trait/typeclass. Costo zero: viene compilato nello stesso codice del primitivo nudo. Tecnica standard in Rust, Haskell e F# per la «modellazione del dominio» e per evitare la cosiddetta «primitive obsession».

← Torna al lessico