guricode

잘 모르면 애매한 Dart 간단 정리 - enum 본문

앱/Flutter&Dart

잘 모르면 애매한 Dart 간단 정리 - enum

agentrakugaki 2025. 6. 24. 15:19

이번엔 Dart에서 자주 사용되는 열거형(enum)에 대해 정리해봤다.


 열거형(enum)

  • 여러 개의 상수 값을 하나의 타입으로 묶은 것
  • 고정된 값들의 집합
enum Color { red, green, blue }

enum Animal {
  cat,
  dog,
  tiger,
  elephant
}

 

 열거형의 주요 특징

1. 값에 접근하기

var myFavoriteColor = Color.blue;
print(myFavoriteColor); // Color.blue

2. switch 문에서 사용 가능

enum Color { red, green, blue }

var myFavoriteColor = Color.green;
var result = '내가 제일 좋아하는 색은 ';

switch (myFavoriteColor) {
  case Color.red:
    result += '빨간색';
    break;
  case Color.green:
    result += '초록색';
    break;
  case Color.blue:
    result += '파란색';
    break;
}

print(result); // 내가 제일 좋아하는 색은 초록색

3. if 문에서도 사용 가능

if (myFavoriteColor == Color.red) {
  result += '빨간색';
} else if (myFavoriteColor == Color.green) {
  result += '초록색';
} else if (myFavoriteColor == Color.blue) {
  result += '파란색';
}

4. index 속성

print(Color.red.index);   // 0
print(Color.green.index); // 1
print(Color.blue.index);  // 2

5. values 속성

var colors = Color.values;
print(colors); // [Color.red, Color.green, Color.blue]
print(colors[1]); // Color.green

6. name 속성

print(Color.red.name); // red

Set과 enum의 차이점

항목 Set enum

값 추가/제거 가능 불가능
중복 허용 허용 (자동 제거) 오류 발생
순서/Index 없음 있음
// 중복된 enum 값 정의 시 오류 발생
enum Color { red, green, blue, red } // Error
  • enum은 선언된 값 외에는 변경 불가 (고정된 상수 집합)
  • 순서가 있으므로 index로 접근 가능

enum은 고정된 값들 중 선택해야 하는 상황에서 유용하게 쓰인다.