열거형 (enum) 타입 [enumerations, *enums]*
** 모든 enums은 자동적으로 [Enum](https://api.dart.dev/stable/dart-core/Enum-class.html)
클래스를 확장합니다. 이들은 가려져 있으며, 이는 자식 클래스가 될 수 없고 implement, mix 또는 명시적으로 인스턴스화할 수 없다는 것을 의미합니다.
enum 선언
enum ColorEnum {
red,
green,
blue,
black,
}
정적변수 에 접근하는 것처럼 접근
const userColor = ColorEnum.blue;
if (userColor == ColorEnum.blue) {
print('userColor is blue');
}
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 의 모든 값들을 처리해야함
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)