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

Meetingkultur
Schlechte Meetings kosten Millionen
Eine internationale Studie von Jabra zeigt, dass viele Meetings keinen Mehrwert schaffen. Die Folgen reichen von Produktivitätsverlusten über Frustration bis zu sinkender Arbeitsqualität.
5 Minuten
SBS Schweiz ruft den World Adapter USB wegen Brand- und Stromschlaggefahr zurück
In Zusammenarbeit mit dem Eidgenössischen Starkstrominspektorat (EST) ruft die SBS Schweiz den World Adapter USB «TEADAPTUSB2CPD20UNI» zurück. Es besteht Brandgefahr und Stromschlaggefahr. Die Konsumenten erhalten den Kaufpreis rückerstattet.
2 Minuten
16. Jul 2026
Samsung präsentiert die neue 990 SSD ab 240 Franken
Die Samsung 990 SSD bietet robuste Leistung mit einer sequenziellen Lesegeschwindigkeit von bis zu 7250 MB/s und einer um 38 % verbesserten Energieeffizienz gegenüber dem Vorgängermodell.
3 Minuten
16. Jul 2026

Das könnte Sie auch interessieren

«Vorsicht: Spam Verdacht»
Swisscom startet Warnhinweis bei verdächtigen Anrufen
Swisscom lanciert für ihren Callfilter eine neue Funktion. Mit der Erweiterung des Callfilters um die Funktion «Vorsicht: Spam Verdacht» erkennen Kunden potenzielle Werbe- und Betrugsanrufe bei ihrem Smartphone auf einen Blick.
2 Minuten
22. Jun 2026
Auswirkungen von Hitze auf Akkus in E-Autos, E-Bikes und E-Scooter
Die grosse Sommerhitze hat auch Folgen für die Akkus von E‑Bikes, E‑Scootern und E-Autos.
2 Minuten
25. Jun 2026
Europäisches Smartphone Punkt. MC03 ist ab sofort erhältlich
Das MC03 des Schweizer Unternehmens Punkt ist ein Smartphone, das mit dem Android-basierten Betriebssystem Aphy OS konsequent auf Datenschutz und Kontrolle durch den Anwender ausgerichtet sein soll. Es ist ab sofort in Europa erhältlich.
2 Minuten
5. Jul 2026
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare