Enum 타입

김동욱·2023년 12월 9일
0

열거형 (enum) 타입 [enumerations, *enums]*

** 모든 enums은 자동적으로 [Enum](https://api.dart.dev/stable/dart-core/Enum-class.html) 클래스를 확장합니다. 이들은 가려져 있으며, 이는 자식 클래스가 될 수 없고 implement, mix 또는 명시적으로 인스턴스화할 수 없다는 것을 의미합니다.

enum 선언

enum ColorEnum {
  red,
  green,
  blue,
  black,
}

enum 사용

정적변수 에 접근하는 것처럼 접근

  const userColor = ColorEnum.blue;
  if (userColor == ColorEnum.blue) {
    print('userColor is blue');
  }

enum index 접근

enum 은 각 값들에 index getter 메소드가 있음

아래와 같이 index 값 확인 가능

  assert(ColorEnum.red.index == 0);
  assert(ColorEnum.green.index == 1);
  assert(ColorEnum.blue.index == 2);
  assert(ColorEnum.black.index == 3);

  List<ColorEnum> colors = ColorEnum.values;
  assert(colors[2] == ColorEnum.blue);

values 를 사용해 enum 값 리스트 확인가능

enum switch

enum switch사용시 enum 의 모든 값들을 처리해야함

  var aColor = ColorEnum.blue;

  switch (aColor) {
    case ColorEnum.red:
      print('Red as roses!');
      break;
    case ColorEnum.green:
      print('Green as grass!');
      break;
    default: // 이 처리가 없으면, 경고가 발생합니다.
      print(aColor); // 'ColorEnum.blue'
  }

ref)

  1. “Enum | Dart”, 23.12.09, https://dart-ko.dev/language/enum
  2. “에러 핸들링 | Dart”, 23.12.09, https://dart-ko.dev/language/error-handling
profile
백엔드 개발자

0개의 댓글