Bij het programmeren is een enum, een afkorting van enumerated type, een door de gebruiker gedefinieerd gegevenstype dat bestaat uit een reeks benoemde waarden die enumerators worden genoemd. In plaats van een geheel getal te gebruiken om een set waarden weer te geven, wordt in plaats daarvan een type met een beperkte set waarden gebruikt. Het gebruik van enums verhoogt het abstractieniveau en stelt de programmeur in staat zich te concentreren op de betekenis van de waarde in plaats van op de opslag en toegankelijkheid ervan. Dit vermindert op zijn beurt bugs.
Denk aan de vier kleuren in een kaartspel met klaveren, ruiten, harten en schoppen als vier tellers die behoren tot een opgesomd type met de naam reeks. Als een variabele V wordt verklaard met kleur als gegevenstype, kan men een van deze vier waarden (klaveren, ruiten, harten en schoppen) eraan toewijzen.
Waarden en variabelen van een opsomming worden geïmplementeerd als bitstrings met een vaste lengte die qua formaat en grootte compatibel zijn met een bepaald type integer. In typetheorie worden enums beschouwd als getagde verbanden van eenheidstypes. Programmeertalen die enums gebruiken, zijn onder meer Pascal, Java en C #.
Enum voordelen
Enums bieden de volgende voordelen:
- Ze zijn eerder een constante dan een getal, waardoor de leesbaarheid van de broncode toeneemt.
- Ze bieden veiligheid tijdens het compileren en voorkomen het vergelijken van constanten in verschillende enums. Een functieargument, retourtype, klassenlid of lokale variabele kan worden gedeclareerd als een enum-type en de compiler zal typeveiligheid afdwingen.
- Enums groeperen dingen in een set.
- In Java kan opsomming worden gebruikt als een singleton. Een opsommingstype met één element wordt beschouwd als een van de beste manieren om een singleton te implementeren.