- D 程式設計基礎
- D 程式設計 - 首頁
- D 程式設計 - 概述
- D 程式設計 - 環境
- D 程式設計 - 基本語法
- D 程式設計 - 變數
- D 程式設計 - 資料型別
- D 程式設計 - 列舉
- D 程式設計 - 字面量
- D 程式設計 - 運算子
- D 程式設計 - 迴圈
- D 程式設計 - 判斷
- D 程式設計 - 函式
- D 程式設計 - 字元
- D 程式設計 - 字串
- D 程式設計 - 陣列
- D 程式設計 - 關聯陣列
- D 程式設計 - 指標
- D 程式設計 - 元組
- D 程式設計 - 結構體
- D 程式設計 - 聯合體
- D 程式設計 - 範圍
- D 程式設計 - 別名
- D 程式設計 - Mixin
- D 程式設計 - 模組
- D 程式設計 - 模板
- D 程式設計 - 不可變性
- D 程式設計 - 檔案 I/O
- D 程式設計 - 併發
- D 程式設計 - 異常處理
- D 程式設計 - 合約
- D - 條件編譯
- D 程式設計 - 面向物件
- D 程式設計 - 類與物件
- D 程式設計 - 繼承
- D 程式設計 - 過載
- D 程式設計 - 封裝
- D 程式設計 - 介面
- D 程式設計 - 抽象類
- D 程式設計 - 有用資源
- D 程式設計 - 快速指南
- D 程式設計 - 有用資源
- D 程式設計 - 討論
D 程式設計 - 列舉
列舉用於定義命名常量值。列舉型別使用enum關鍵字宣告。
enum語法
列舉定義的最簡單形式如下:
enum enum_name {
enumeration list
}
其中:
enum_name指定列舉型別名稱。
enumeration list是一個用逗號分隔的識別符號列表。
列舉列表中的每個符號代表一個整數值,比它前面的符號大 1。預設情況下,第一個列舉符號的值為 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;
}
編譯並執行上述程式碼後,將產生以下結果:
Current Day: 1 Friday : 5
在上面的程式中,我們可以看到列舉是如何使用的。首先,我們建立了一個名為day的使用者定義列舉Days的變數。然後,我們使用點運算子將其設定為mon。我們需要使用writefln方法來列印儲存的mon的值。你還需要指定型別。它是整數型別,因此我們使用%d進行列印。
命名列舉屬性
上面的示例使用Days作為列舉名稱,稱為命名列舉。這些命名列舉具有以下屬性:
init - 初始化列舉中的第一個值。
min - 返回列舉的最小值。
max - 返回列舉的最大值。
sizeof - 返回列舉的儲存大小。
讓我們修改之前的示例以使用這些屬性。
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;
}
編譯並執行上述程式碼後,將產生以下結果:
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;
}
編譯並執行上述程式碼後,將產生以下結果:
Sunday : 0 Monday : 1
匿名列舉的工作方式與命名列舉幾乎相同,但它們沒有max、min和sizeof屬性。
帶基本型別語法的列舉
帶基本型別的列舉語法如下所示。
enum :baseType {
enumeration list
}
一些基本型別包括long、int和string。下面是一個使用long的示例。
import std.stdio;
enum : string {
A = "hello",
B = "world",
}
int main(string[] args) {
writefln("A : %s", A);
writefln("B : %s", B);
return 0;
}
編譯並執行上述程式碼後,將產生以下結果:
A : hello B : world
更多功能
D語言中的列舉提供了在列舉中使用多種型別的多個值進行初始化的功能。以下是一個示例。
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;
}
編譯並執行上述程式碼後,將產生以下結果:
A : 1.200000 B : 2.200000 C : 3 D : 4
廣告