Home

Aufzählungstypen

Aufzählungstypen, auch Enumerationen oder enums genannt, sind benutzerdefinierte Datentypen, die eine feste Menge benannter Werte umfassen. Die Werte, Enumeratoren genannt, dienen als symbolische Repräsentationen für diskrete Werte und erleichtern Lesbarkeit, Typsicherheit und Wartbarkeit von Programmen, indem sie magische Zahlen ersetzen. In vielen Sprachen besitzen Enumerationen eine zugrunde liegende Repräsentation, meist eine Ganzzahl, manchmal auch Strings. Je nach Sprache kann diese Repräsentation automatisch zugewiesen oder explizit festgelegt werden.

Zu den üblichen Varianten gehören ordinale Aufzählungen, bei denen die Enumerator-Werte eine klare Reihung besitzen, typischerweise

Fortgeschrittene Sprachen unterstützen komplexe Enumerationstypen: In Java sind Enums echte Klassen mit Feldern und Methoden; in

TypeScript unterstützt sowohl numerische als auch string-basierte Enums; C# definiert enums als Wertetypen mit einem festgelegten

Anwendungsbereiche sind Statuskennzeichen, Kategorien, Optionen und Zustandsmaschinen. Vorteile von Aufzählungstypen liegen in der Typensicherheit, in der

mit
aufsteigenden
Ganzzahlen.
Flag-
oder
Bitmasken-Aufzählungen
ermöglichen
Kombinationen
mehrerer
Werte
durch
bitweises
Oder
und
werden
oft
mit
speziellen
Operatoren
oder
Attributen
gekennzeichnet,
um
Mehrfachauswahl
zu
repräsentieren.
Rust
sind
Enums
algebraische
Datentypen
mit
Varianten,
die
eigene
Daten
tragen
können.
C
und
C++
verwenden
tradi­tionelle
Aufzählungen,
wobei
C++11
auch
geschlossene,
scope-begrenzte
Enumerationen
(enum
class)
mit
einem
definierten
zugrunde
liegenden
Typ
anbietet.
Ganzzahltyp
und
bietet
das
Flags-Pattern
für
Bitmasken.
Klarheit
des
Codes
und
in
der
Unterstützung
von
Musterabgleich
oder
Switch-Anweisungen.
Nachteile
betreffen
die
Portabilität
der
zugrunde
liegenden
Werte
über
Plattformen
hinweg
oder
die
Erweiterbarkeit
vorhandener
Werte,
was
in
APIs
zu
Kompatibilitätsproblemen
führen
kann.
Die
Wahl
des
Typs
hängt
von
der
Sprache,
den
Anforderungen
an
Typensicherheit,
Speicherverwendung
und
Interoperabilität
ab.