플러터 앱 개발

Chapter 6. Dart 심화 문법 B - 열거형(Enumerations)

yuna 2025. 12. 10. 20:02

 

여러분~ 안녕하세요~~~~!!!

(아무도 듣지 않는 홀로만의 외침...)

 

 

 

 

벌써 심화 문법에 들어선지 두 번째 시간이 되었는데요!

 

저도 여기에 내용들을 정리하면서 공부를 하고 있는데

정말 코딩은 멀고도 험한 길인 것 같아요,,,흑..

 

 

그래도 우리 같이 빨리 문법들을 배우고,

직접 앱을 개발해 볼 수 있는 그날을 기다리며...오늘도 시작해 볼까요?!!!!

이거슨 너무 좋다는 의미..ㅎ


 

열거형(Enumerations)

: 정해진 값들의 집합을 이름으로 묶어두는 타입

요일, 날씨, 계절 등 값이 정해져있고 한정적일 때 사용 추천!

 

형태

  • enum 열거형 이름 { 요소1, 요소2... } / 여러 줄로도 나열 가능

 

여기서 잠깐!
그럼 지난 시간에 배운 컬렉션이랑 같은거 아닌감...?

No!! 컬렉션의 개념은 값을 저장하고 관리하기 위한 데이터 구조로 추가나 삭제, 수정이 가능한 단순한 저장 공간이라면
enum은 값이 고정되어 변경이 어렵고, enum안에 들어가는 요소들을 새로운 타입으로 지정함
즉, enum 자체가 새로운 데이터 종류(타입)이 된다는 뜻

컬렉션은 쇼핑카트나 좋아요 목록처럼 내 마음대로 변경이 가능하지만, enum은 주문 상태처럼 이미 그 타입을 생성해버려서
다른 요소가 추가되거나 삭제될 수 없다!

 

특징

  • 열거형 이름을 통해 열거형에 포함된 값에 접근 가능
  • switch, if 문을 통해 열거형에 포함된 값 각각을 다룰 수 있음 -> switch, if 문에 대한 내용은 지난 시간 조건문 참고!
  • index를 통해 열거형에 포함된 값이 열거형의 몇 번째에 있는지 알 수 있음 -> 즉 순서의 개념이 있다는 뜻!
  • enum은 타입을 정의하는 것이기 때문에 함수 안에 가두지 않고, 전역 범위(파일 상단)에 정의
  • ->타입은 프로그램 전체에서 사용할 수 있어야 하기 때문에!
  • 중복값을 넣으면 오류가 발생! / Set은 중복값을 무시하지만 오류가 발생하지는 않음
1) switch 사용
enum Weather { sunny, rainy, cloudy } //weather이라는 새로운 타입 선언

void main() {
  Weather today = Weather.rainy;

  switch (today) {
    case Weather.sunny:
      print("해가 쨍쨍!");
      break;
    case Weather.rainy:
      print("비온다.. 우산 챙겨");
      break;
    case Weather.cloudy:
      print("구름 가득");
      break;
  }
} //'비온다.. 우산 챙겨'가 출력

2) index 사용
enum Color { red, green, blue }

void main(){
print(Color.red.index); // 0
print(Color.green.index); // 1
print(Color.blue.index); // 2
}

 

enum의 값들에 접근 가능한 속성

  • values를 통해 열거형에 포함된 값들을 알 수 있음
  • name을 통해 열거형에 포함된 값의 이름을 알 수 있음
values, name 사용

enum Color { red, green, blue }

void main(){
  var colors=Color.values;
  print(colors);
  print(Color.red.name);
}
//
[Color.red, Color.green, Color.blue] 
red 출력