D Programmierung - Aufzählungen

Eine Aufzählung wird zum Definieren benannter konstanter Werte verwendet. Ein Aufzählungstyp wird mit dem deklariertenum Stichwort.

Die Enum- Syntax

Die einfachste Form einer Aufzählungsdefinition ist die folgende:

enum enum_name {  
   enumeration list 
}

Wo,

  • Der enum_name gibt den Namen des Aufzählungstyps an.

  • Die Aufzählungsliste ist eine durch Kommas getrennte Liste von Bezeichnern.

Jedes der Symbole in der Aufzählungsliste steht für einen ganzzahligen Wert, der größer ist als das vorhergehende Symbol. Standardmäßig ist der Wert des ersten Aufzählungssymbols 0. Zum Beispiel -

enum Days { sun, mon, tue, wed, thu, fri, sat };

Beispiel

Das folgende Beispiel zeigt die Verwendung der Aufzählungsvariablen -

import std.stdio;

enum Days { sun, mon, tue, wed, thu, fri, sat };

int main(string[] args) {
   Days day;

   day = Days.mon;
   writefln("Current Day: %d", day); 
   writefln("Friday : %d", Days.fri); 
   return 0;
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

Current Day: 1 
Friday : 5

Im obigen Programm können wir sehen, wie eine Aufzählung verwendet werden kann. Zunächst erstellen wir eine Variable mit dem Namen Tag unserer benutzerdefinierten Aufzählungstage. Dann setzen wir es mit dem Punktoperator auf mon . Wir müssen die writefln-Methode verwenden, um den Wert von mon zu drucken, der gespeichert wurde. Sie müssen auch den Typ angeben. Es ist vom Typ Integer, daher verwenden wir% d zum Drucken.

Eigenschaften von benannten Enums

Das obige Beispiel verwendet einen Namen Tage für die Aufzählung und heißt benannte Aufzählungen. Diese benannten Aufzählungen haben die folgenden Eigenschaften:

  • Init - Es initialisiert den ersten Wert in der Aufzählung.

  • min - Es wird der kleinste Wert der Aufzählung zurückgegeben.

  • max - Es wird der größte Wert der Aufzählung zurückgegeben.

  • sizeof - Gibt die Größe des Speichers für die Aufzählung zurück.

Lassen Sie uns das vorherige Beispiel ändern, um die Eigenschaften zu nutzen.

import std.stdio;

// Initialized sun with value 1 
enum Days { sun = 1, mon, tue, wed, thu, fri, sat };

int main(string[] args) { 
   writefln("Min : %d", Days.min); 
   writefln("Max : %d", Days.max);
   writefln("Size of: %d", Days.sizeof); 
   return 0; 
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

Min : 1
Max : 7
Size of: 4

Anonyme Aufzählung

Die Aufzählung ohne Namen wird als anonyme Aufzählung bezeichnet. Ein Beispiel füranonymous enum ist unten angegeben.

import std.stdio; 
 
// Initialized sun with value 1 
enum { sun , mon, tue, wed, thu, fri, sat }; 
 
int main(string[] args) { 
   writefln("Sunday : %d", sun); 
   writefln("Monday : %d", mon); 
   return 0; 
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

Sunday : 0
Monday : 1

Anonyme Aufzählungen funktionieren fast genauso wie benannte Aufzählungen, haben jedoch nicht die Eigenschaften max, min und sizeof.

Aufzählung mit Basistypsyntax

Die Syntax für die Aufzählung mit Basistyp ist unten dargestellt.

enum :baseType {  
   enumeration list 
}

Einige der Basistypen umfassen long, int und string. Ein Beispiel mit long ist unten dargestellt.

import std.stdio;
  
enum : string { 
   A = "hello", 
   B = "world", 
} 
  
int main(string[] args) { 
   writefln("A : %s", A); 
   writefln("B : %s", B); 
   
   return 0; 
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

A : hello
B : world

Mehr Funktionen

Die Aufzählung in D bietet Funktionen wie die Initialisierung mehrerer Werte in einer Aufzählung mit mehreren Typen. Ein Beispiel ist unten gezeigt.

import std.stdio;
  
enum { 
   A = 1.2f,  // A is 1.2f of type float 
   B,         // B is 2.2f of type float 
   int C = 3, // C is 3 of type int 
   D          // D is 4 of type int 
}
  
int main(string[] args) { 
   writefln("A : %f", A); 
   writefln("B : %f", B); 
   writefln("C : %d", C); 
   writefln("D : %d", D);  
   return 0; 
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

A : 1.200000
B : 2.200000
C : 3
D : 4