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

Stromverbrauch und Effizienzpotenziale von Rechenzentren in der Schweiz
2024 betrug der Stromverbrauch der Rechenzentren in der Schweiz 2,1 TWh, was ungefähr 3,6 Prozent des Gesamtverbrauchs entspricht. Bis 2030 wird ein Anstieg des Stromverbrauchs der inländischen Rechenzentren auf 2,5 bis 3,2 TWh erwartet. 
3 Minuten
Echtzeittext - Bundesrat schafft Grundlage für neue Notruffunktion
Der Bundesrat hat mehrere Verordnungen angepasst, um ein sicheres Notrufsystem zu fördern. In Zukunft können Menschen in Notlage die Notdienste von Polizei, Feuerwehr und Sanität per Echtzeittext auf den Smartphones auch schriftlich erreichen. 
3 Minuten
Honor: Neue Oberklasse mit zwei Modellen der 600-Serie
Die neuen Honor-Smartphones 600 und 600 Pro sollen in der Oberklasse mit schnellen Snapdragon-Prozessoren und umfangreichen KI-Funktionen der Kameras punkten.
3 Minuten
6. Mai 2026

Das könnte Sie auch interessieren

Publireportage
Ist öffentliches WLAN sicher? Das solltest du wissen
Öffentliche WLAN-Netze sind überall: in Flughäfen, Hotels, Bibliotheken, Einkaufszentren und vielen anderen Orten. Sich schnell und kostenlos mit dem Internet zu verbinden, war noch nie so einfach. Doch so praktisch diese Netzwerke auch sind – für Cyberkriminelle sind sie ein echtes Einfallstor.
3 Minuten
Vergabe der UKW-Konzessionen für Radios 2027 bis 2034
Das Bundesamt für Kommunikation BAKOM hat das Verfahren für die Vergabe der UKW-Funkkonzessionen zur Verbreitung von Radioprogrammen ab 2027 festgelegt. Die SRG und Privatradios mit Leistungsauftrag können auf Gesuch hin ihre bisherigen Frequenzen weiter nutzen. SRG vor UKW-Rückkehr?
3 Minuten
21. Apr 2026
Lederarmbänder werden zu Stromspeichern
Forscher der Jilin-Universität machen aus ledernen Jacken, Trachtenhosen und Uhrarmbändern Batterien. Dabei bleibt ihre ursprüngliche Funktion erhalten.
3 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare