📜  Dart的数据枚举

📅  最后修改于: 2021-09-02 05:39:19             🧑  作者: Mango

枚举类型(也称为enumerationsenums )主要用于定义命名常量值。 enum关键字用于在Dart定义枚举类型。枚举的用例是在相同的类型定义下存储有限的数据。

Syntax:
enum variable_name{
  // Insert the data members as shown
  member1, member2, member3, ...., memberN
}

我们来分析一下上面的语法:

  1. enum是用于初始化枚举数据类型的关键字。
  2. 顾名思义, variable_name用于命名枚举类。
  3. 枚举类中的数据成员必须用逗号分隔。
  4. 每个数据成员被分配一个大于前一个的整数,从 0 开始(默认情况下)。
  5. 确保不要在最后一个数据成员的末尾使用分号或逗号。

示例 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. 

注意:枚举类不保存所有类型的数据,而是只存储字符串值,而不用引号。
枚举数据类型的限制:

  1. 它不能被子类化或混合。
  2. 不可能显式实例化枚举。