Dart Enum constants

Enum alias Enumeration is a new custom type introduced in Dart and used to store a fixed group of constants.

Syntax: Enumeration is declared using the enum keyword.

enum EnumerationName{
    //constants separated by comma
}

enum is a keyword. EnumerationName is the Name of the Enumeration type. Constants are separated by a trailing comma.

Here is an Enum example

enum Status {initial, pending,loading,completed }

Each enum constant always starts with index=0

Properties:

index: Returns index value for a given enum constant. name: returns constant name values: return list of Enum constants

void main() {
  print(Status.initial.index); //0
  print(Status.initial.name); // initial
  print(Status.initial.name.runtimeType); //String
}

enum Status { initial, pending, loading, completed }

Output:

0
initial
String
[Status.initial, Status.pending, Status.loading, Status.completed]

How to use enum in the switch statement

You can write a case statement for each enum constant and the default case is executed if no match is found for the switch expression.

void main() {
  var status = Status.completed;

  switch (status) {
    case Status.initial:
      print('initial status');
      break;
    case Status.pending:
      print('pending status');
      break;
    case Status.loading:
      print('loading status');
      break;
    case Status.completed:
      print('completed status');
      break;
    default:
      print(status);
  }
}

enum Status { initial, pending, loading, completed }

Important points:

  • Enum constants are compiled time constants.
  • Subclass an enum is not possible
  • Enum class is not created with new or normal object creation