×
D语言教程D语言概述,D语言是什么?D语言开发环境设置D语言基本语法D语言变量D语言数据类型D语言枚举EnumsD语言常值D语言运算符D中算术运算符D语言关系运算符D语言逻辑运算符D语言位运算符D语言赋值运算符D语言sizeof运算符D语言运算符优先级D语言循环D语言while循环D语言for循环D语言do...while循环D语言嵌套循环D语言break语句D语言continue语句D语言决策语句D语言if语句D语言if...else语句D语言if嵌套语句D语言switch语句D语言嵌套switch语句D语言函数D语言字符D语言字符串-StringD语言数组D语言关联数组D语言指针D语言元组D语言结构体D语言联合体D语言范围D语言别名D语言混合类型D语言模块D语言模板D语言常量D语言文件I/OD语言并发D语言异常处理契约式编程D语言条件编译D语言类和对象D语言类成员函数类的访问修饰符构造函数和析构函数this指针类指针类的静态成员类继承重载一元运算符重载二元运算符重载比较操作符重载D语言封装D语言接口D语言抽象类

D语言枚举Enums


枚举用于定义命名常量的值。枚举类型是使用enum关键字声明的。

枚举语法

枚举定义的最简单的形式是这样的:

enum enum_name { 
enumeration list
}

那么,

  • enum_name指定枚举类型名称。

  • 枚举列表是一个逗号分隔的标识符列表。

每个枚举列表中的符号代表一个整数值,比它前面的符号一个更大的。默认情况下,第一个枚举符号的值是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

在上面的程序中,我们可以看到如何枚举都可以使用。最初,我们创建用户定义的枚举Days,一个命名的变量day。然后,我们将它使用点运算符设置为mon。需要使用writefln方法打印周一的是被存储的值。您还需要指定类型。在这里,它的整数类型,所以我们使用%d。

命名枚举的属性

在上面的例子中使用了名称为Days枚举,被称为命名枚举。这些命名枚举具有以下性质

  • init 初始化枚举中的第一个值。

  • min 返回枚举的最小值。

  • max 返回枚举的最大值。

  • size 返回存储的大小为枚举。

让我们修改前面的例子来使用属性。

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 : 3
Max : 9
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

匿名枚举工作几乎与命名枚举方式一样,但不具有最大值,最小值和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

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)