枚举用于定义命名常量值,使用 enum 关键字声明枚举类型。
枚举定义的最简单形式如下:
链接:https://www.learnfk.comhttps://www.learnfk.com/d-programming/d-programming-enums.html
来源:LearnFk无涯教程网
enum enum_name { enumeration list }
enum_name - 指定枚举类型名称。
enumeration list - 是用逗号分隔的标识符列表。
枚举列表中的每个符号代表一个整数值,该整数值比其前面的符号大一个,默认情况下,第一个枚举符号的值为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 的变量,然后,使用点运算符将其设置为 mon ,我们需要使用writefln方法来打印已存储的mon的值,您还需要指定类型,它是整数类型,因此我们使用%d进行打印。
上面的示例使用名称Days进行枚举,称为命名枚举,这些命名的枚举具有以下属性-
Init - 初始化枚举中的第一个值。
min - 返回枚举的最小值。
max - 返回枚举的最大值。
sizeof - 返回用于枚举的存储空间。
让我们修改前面的示例以利用这些属性。
import std.stdio; //用值 1 初始化 sun 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; 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,下面是使用字符串的示例。
import std.stdio; enum : string { A="hello", B="Learnfk", } int main(string[] args) { writefln("A : %s", A); writefln("B : %s", B); return 0; }
编译并执行上述代码后,将产生以下输出-
A : hello B : Learnfk
D中的枚举提供了诸如在多个类型的枚举中初始化多个值之类的函数。一个如下所示。
import std.stdio; enum { A=1.2f, //A 是 float 类型的 1.2f B, //B 是 float 类型的 2.2f int C=3, //C 是 int 类型的 3 D //D 是 int 类型的 4 } 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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
Tony Bai · Go语言第一课 -〔Tony Bai〕