枚举类型(也称为enumerations或enums )主要用于定义命名常量值。 enum关键字用于在Dart定义枚举类型。枚举的用例是在相同的类型定义下存储有限的数据。
Syntax:
enum variable_name{
// Insert the data members as shown
member1, member2, member3, ...., memberN
}
我们来分析一下上面的语法:
- enum是用于初始化枚举数据类型的关键字。
- 顾名思义, variable_name用于命名枚举类。
- 枚举类中的数据成员必须用逗号分隔。
- 每个数据成员被分配一个大于前一个的整数,从 0 开始(默认情况下)。
- 确保不要在最后一个数据成员的末尾使用分号或逗号。
示例 1:打印枚举数据类中的所有元素。
Dart
// dart program to print all the
// elements from the enum data class
// Creating enum with name Gfg
enum Gfg {
// Inserting data
Welcome, to, GeeksForGeeks
}
void main() {
// Printing the value
// present in the Gfg
for (Gfg geek in Gfg.values) {
print(geek);
}
}
Dart
enum Gfg {
Welcome, to, GeeksForGeeks
}
void main() {
// Assing a value from
// enum to a variable geek
var geek = Gfg.GeeksForGeeks;
// Switch-case
switch(geek) {
case Gfg.Welcome: print("This is not the correct case.");
break;
case Gfg.to: print("This is not the correct case.");
break;
case Gfg.GeeksForGeeks: print("This is the correct case.");
break;
}
}
输出:
Gfg.Welcome
Gfg.to
Gfg.GeeksForGeeks
注意:请注意,在上面的示例中,字符串没有用引号括起来,因此可以通过将它们与枚举中的值进行比较来打印不同的结果。
示例 2:使用 switch-case 打印结果。
Dart
enum Gfg {
Welcome, to, GeeksForGeeks
}
void main() {
// Assing a value from
// enum to a variable geek
var geek = Gfg.GeeksForGeeks;
// Switch-case
switch(geek) {
case Gfg.Welcome: print("This is not the correct case.");
break;
case Gfg.to: print("This is not the correct case.");
break;
case Gfg.GeeksForGeeks: print("This is the correct case.");
break;
}
}
输出:
This is the correct case.
注意:枚举类不保存所有类型的数据,而是只存储字符串值,而不用引号。
枚举数据类型的限制:
- 它不能被子类化或混合。
- 不可能显式实例化枚举。