Anzeige
Anzeige
Anzeige
Lesedauer 3 Min.

'Other'-Wert in ENUMs: Ein Aufruf zur Vorsicht

Im API-Design kann die Einführung eines 'Other'-Wertes in ENUMs zu unerwarteten Problemen führen. Ein Blog-Beitrag von Raymond Chen beleuchtet das Dilemma und bietet Alternativen für eine bessere Handhabung.
© (Quelle: EMGenie)

Ein Fallstrick, über die viele Entwickler bei der Arbeit mit Enumerationen (ENUMs) stolpern, ist die Einführung eines 'Other'-Wertes. Ein Beitrag im Blog "The Old New Thing" von Raymond Chen macht auf diese Problematik aufmerksam und zeigt auf, wie ein solcher Wert einer Anwendung schaden kann.

Nehmen wir die folgende ENUM-Deklaration:

enum class WidgetFlavor {   Vanilla,   Chocolate,   Strawberry,   Other }; 

Hierbei wird angenommen, dass es drei Geschmacksrichtungen von Widgets gibt, aber möglicherweise in Zukunft weitere hinzukommen werden. Um auf diese Möglichkeit zu reagieren, wird ein 'Other'-Wert eingeführt, um spätere Erweiterungen zu berücksichtigen. Doch dieser Ansatz birgt erhebliche Risiken.

Stellen wir uns vor, dass in zukünftigen Versionen der ENUM ein neuer Geschmack namens 'Mint' hinzugefügt wird:

enum class WidgetFlavor {   Vanilla,   Chocolate,   Strawberry,   Other,   Mint }; 

Ein Benutzer des API, der die Funktion GetWidgetFlavor aufruft und ein Mint-Widget erhält, sieht sich nun einem Dilemma gegenüber. Soll der Rückgabewert 'Mint' lauten oder wird dies die Kompatibilität mit bereits existierendem Code gefährden, der 'Other' erwartet?

Die Problematik besteht darin, dass der Begriff 'Other' impliziert, dass die ENUM vollständig ist. Der Rückgabewert 'Other' könnte für ältere Versionen des Codes als unerwartet und verwirrend angesehen werden. Chen empfiehlt daher, auf die Verwendung von 'Other' zu verzichten und stattdessen festzulegen, dass Werte, die nicht erkannt werden, als 'Other' betrachtet werden sollten.

Ein besserer Ansatz wäre es, die ENUM offen zu lassen und zu dokumentieren, dass der neue Wert 'Mint' zu einer separat definierten Kategorie zählt. Auf diese Weise können neue Implementierungen 'Mint' korrekt zurückgeben, während älterer Code die neuen Werte in einer selbst definierten 'Other'-Kategorie belässt.

Entwickler sollten also bei der Gestaltung ihrer APIs Vorsicht walten lassen.

Vorsicht bei der Implementierung von APIs mit other-Werten in Enums

Kommentare

Softwareentwicklung
Anzeige
Anzeige

Neueste Beiträge

Neue Schweizer biometrische Identitätskarte erhältlich
Die neue biometrische Schweizer Identitätskarte ist seit dem 2. November 2026, erhältlich. Sie bietet eine zusätzliche Sicherheitsebene, entspricht den europäischen Standards und ist eine zukunftsorientierte Lösung für Reisen in die Europäische Union (EU).
3 Minuten
Eventfrog führt KI-Assistenten für die Eventerfassung ein
Mit dem neuen KI-Assistenten Froggy können Veranstalter ihre Events per Text- oder Sprachnachricht erfassen. Die Anwendung übernimmt die Angaben automatisch in das Eingabeformular und fragt bei fehlenden Informationen nach.
2 Minuten
MediaMarktSaturn führt mobiles Bezahlen in 400 Märkten ein
Verkäufer können Zahlungen jetzt direkt am Regal oder im Servicebereich entgegennehmen. Nach einer Pilotphase dauerte der bundesweite Rollout in Deutschland nur 48 Stunden.
3 Minuten

Das könnte Sie auch interessieren

Der Zenit für Gamer, Cosplayer und Fans von Star Wars
Fantasy Basel 2024: der grosse Rückblick
Sie war auch dieses Jahr die wichtigste Messe für Gamer, Cosplayer oder einfach für alle, die galaktische und fantastische Geschichten lieben. PCtipp hat die coolsten Bilder auf der Fantasy Basel 2024, der grössten Schweizer Comic Con, gesammelt.
3 Minuten
13. Mai 2024
Kritische Schwachstellen in PHP - Sicherheitsupdates sofort einspielen
Zwei kritische Schwachstellen in PHP können Angreifern ermöglichen, ohne Anmeldung Schadcode auf betroffenen Servern auszuführen. Sicherheitsupdates sind jetzt verfügbar. Das Bundesamt für Cybersicherheit (BACS) empfiehlt, betroffene Systeme unverzüglich zu aktualisieren.
2 Minuten
21. Okt 2026
Sprachbarrieren überwinden
Alertswiss informiert, warnt und alarmiert neu auch in Leichter Sprache
Hunderttausenden Menschen in der Schweiz fällt das Lesen schwer. Informationen, Warnungen und Alarmmeldungen müssen aber auch für sie verständlich sein. Deshalb bietet das Bundesamt für Bevölkerungsschutz (BABS) Meldungen in der Alertswiss-App neu auch in Leichter Sprache an.
4 Minuten
21. Okt 2026
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare