IT-Lexikon › Programmierung › Generics

Generics

Programmierung Svenska → Aktualisiert: 2026-09-10

Parametrischer Polymorphismus — Funktionen und Typen, die über Typen parametrisiert sind. Vec<T> funktioniert für T = String, T = i32, T = was auch immer. Standard seit ML 1973; mainstream seit Java 5 (2004), C++-Templates (späte Neunziger), Rust, Go 1.18 (2022).

Zwei Umsetzungen: Monomorphisierung (zur Kompilierzeit, eine Kopie pro konkretem Typ — Rust, C++, Go) und Erasure (eine Laufzeitversion, Typinformationen gelöscht — Java, TypeScript). Kompromisse: Monomorphisierung bringt schnellere Laufzeit, aber größere Binaries. Erasure bringt kleinere Binaries, aber weniger Optimierungspotenzial. Bounded Generics wie fn sort<T: Ord> verlangen, dass T das Ord-Trait implementiert. Higher-Kinded Types (HKT), also Generics über Generics, gibt es in Haskell und Scala — sie fehlen in Rust und Go. Modernes Go (1.18+) fügte Generics erst nach 13 Jahren Widerstand des Go-Teams hinzu.

← Zurück zum Lexikon