枚舉用于定義命名常量值,使用 enum 關(guān)鍵字聲明枚舉類型。
枚舉定義的最簡單形式如下:
enum enum_name {
enumeration list
}
枚舉列表中的每個(gè)符號代表一個(gè)整數(shù)值,該整數(shù)值比其前面的符號大一個(gè),默認(rèn)情況下,第一個(gè)枚舉符號的值為0。如-
enum Days { sun, mon, tue, wed, thu, fri, sat };
以下示例演示枚舉變量的使用-
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;
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
Current Day: 1
Friday : 5
在上面的程序中,我們可以看到如何使用枚舉,最初,我們根據(jù)用戶定義的枚舉天數(shù)創(chuàng)建一個(gè)名為 day 的變量,然后,使用點(diǎn)運(yùn)算符將其設(shè)置為 mon ,我們需要使用writefln方法來打印已存儲的mon的值,您還需要指定類型,它是整數(shù)類型,因此我們使用%d進(jìn)行打印。
上面的示例使用名稱Days進(jìn)行枚舉,稱為命名枚舉,這些命名的枚舉具有以下屬性-
讓我們修改前面的示例以利用這些屬性。
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;
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
Min : 1
Max : 7
Size of: 4
沒有名稱的枚舉稱為匿名枚舉,下面給出了匿名枚舉的示例。
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;
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
Sunday : 0
Monday : 1
匿名枚舉的工作方式與命名枚舉幾乎相同,但是它們沒有max,min和sizeof屬性。
基本類型枚舉的語法如下所示。
enum :baseType {
enumeration list
}
一些基本類型包括long,int和string,下面是使用字符串的示例。
import std.stdio;
enum : string {
A="hello",
B="world",
}
int main(string[] args) {
writefln("A : %s", A);
writefln("B : %s", B);
return 0;
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
A : hello
B : world
D中的枚舉提供了諸如在多個(gè)類型的枚舉中初始化多個(gè)值之類的函數(shù)。一個(gè)如下所示。
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;
}
編譯并執(zhí)行上述代碼后,將產(chǎn)生以下輸出-
A : 1.200000
B : 2.200000
C : 3
D : 4
更多建議: