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 24
In der Kalenderwoche 24 vom 08. bis zum 14. Juni 2026 standen die Artikel «Ubuntu 26.04 LTS ist da!» und «Mini-Cup-Game in der Google-Suche spielen» ganz oben in der Gunst unserer Leserschaft.  
2 Minuten
19. Jun 2026
Vernehmlassung
Angepasste Unternehmensabgabe für Radio und TV
Der Bundesrat will das Tarifmodell der Unternehmensabgabe für Radio und Fernsehen anpassen und damit einen Entscheid des Bundesgerichts umsetzen. Die Vernehmlassung zur Teilrevision der Radio- und Fernsehverordnung wird am 23. Juni 2026 eröffnet.
2 Minuten
19. Jun 2026
AI Frontier Hackathon
Neurodiverse IT-Lernende entwickeln bei Microsoft eigene KI-Agenten
Über 40 neurodiverse IT-Lernende und Ausbildner, darunter Lernende im Autismus-Spektrum und mit ADHS, entwickelten beim AI Frontier Hackathon von Kauz Informatik Medien AG und Microsoft Schweiz eigene KI-Agenten.
3 Minuten
21. Jun 2026

Das könnte Sie auch interessieren

NFC-Angriffe auf Android verdreifacht
Cyberkriminelle nutzen zunehmend NFC-Technologie, um Bankdaten von Android-Nutzern zu stehlen. Die Angriffszahlen sind in wenigen Monaten dramatisch gestiegen.
2 Minuten
28. Mai 2026
Radios können Gesuche einreichen
BAKOM publiziert UKW-Frequenzen
Das Bundesamt für Kommunikation BAKOM hat am 28. Mai 2026 die Frequenzpakete für die Verbreitung von UKW publiziert.
2 Minuten
29. Mai 2026
Viele Mobilfunk-Anbieter senken Roaming-Preise
Die Sommerferien stehen vor der Tür. Daher hat der Online-Vergleichsdienst moneyland.ch die Kosten für die Nutzung des Smartphones im Ausland analysiert.
6 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare