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

Die besten PCtipp-Artikel aus der Kalenderwoche 29
In der Kalenderwoche 29 vom 13. bis zum 19. Juli 2026 standen die Artikel «Kleiner Excel-Spick von Microsoft» und «Finanzen im Griff» ganz oben in der Gunst unserer Leserschaft.
2 Minuten
24. Jul 2026
Zoom führt Echtzeit-Übersetzung für Meetings ein
Zoom hat ein neues KI-gestütztes Feature für Echtzeit-Übersetzungen in den Zoom Meetings gelauncht. Teilnehmer können damit in ihrer eigenen Sprache sprechen, während die anderen sie in ihrer Sprache hören.
3 Minuten
27. Jul 2026
In eigener Sache
Kurze Newsletter-Sommerpause
Vom 27. Juli bis zum 9. August macht die PCtipp-Redaktion eine kurze Newsletter-Sommerpause. Sie bekommen in diesem Zeitraum keinen Newsletter. Den nächsten Newsletter erhalten Sie dann wieder am 10. August.
2 Minuten
26. Jul 2026

Das könnte Sie auch interessieren

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
6. Jul 2026
Publireportage
Eine Kamera. Alles im Blick: Die Reolink OMVI 3i PoE
Die neue Reolink OMVI 3i PoE (P931) vereint eine 180°-Panoramakamera mit einem motorisierten PT-Objektiv. So behält die smarte Kamera gleichzeitig das grosse Ganze im Blick und verfolgt Bewegungen in Echtzeit. Sie ist ab sofort für 279 Fr. bei digitech.ch erhältlich.
4 Minuten
6. Jul 2026
E-Mail «Neue Sprachnachricht» ist Phishing
Betrüger versenden E-Mails, in denen sie behaupten, dass eine neue Sprachnachricht bereitstehe. Damit versuchen sie, an Zugangsdaten von persönlichen Benutzerkonten zu gelangen.
3 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare