Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- Flutter
- 앱심사
- 자바스크립트
- printf
- firebase
- java 출력
- Clean Architecture
- 배포
- 자바 출력 방식
- abap
- java 콘솔 출력 차이
- develop
- unity
- LLM
- nodejs
- riverpod
- scss
- DART
- 자바 포맷 출력
- java
- JS
- ListView
- 엡
- lifecycle
- JQ
- npm
- 단축키
- react
- UI/UX
- println
Archives
- Today
- Total
guricode
Dart 간단 정리 - 열거형 (Enum) 완전 정복 본문
Dart에서 헷갈리기 쉬운 개념 중 하나인 열거형(enum)! 이번 정리에서는 열거형이 어떤 친구인지, 언제 쓰는지, 실제 코드와 함께 하나씩 뜯어보자.
열거형 (Enum)이란?
- 여러 개의 고정된 상수 값을 하나의 이름 아래 묶어서 정의할 수 있는 문법
- 열거형의 각 값들은 고유하며 순서(index) 도 가지고 있음
// Color 라는 열거형을 선언
enum Color { red, green, blue }
// Animal 이라는 열거형
enum Animal {
cat,
dog,
tiger,
elephant,
}
열거형의 기본 사용
열거형 값에 접근하기
var myFavoriteColor = Color.blue;
print(myFavoriteColor); // Color.blue
switch 문에서 활용
enum Color { red, green, blue }
void main() {
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); // 내가 제일 좋아하는 색은 초록색
}
if 문
if (myFavoriteColor == Color.green) {
print('초록색 좋아하네요!');
}
열거형의 속성
🔹 index
- 값이 열거형 내에서 몇 번째인지 알려줌 (0부터 시작)
print(Color.red.index); // 0
print(Color.green.index); // 1
print(Color.blue.index); // 2
🔹 values
- 열거형의 모든 요소를 리스트로 가져옴
var allColors = Color.values;
print(allColors); // [Color.red, Color.green, Color.blue]
🔹 name (Dart 2.15 이상)
- 요소의 문자열 이름을 가져옴
print(Color.red.name); // 'red'
언제?
- 연관된 상수값 집합이 필요할 때
- 예: 요일, 상태(status), 카테고리 등
- 아래 예시는 간단한 상태값 처리 예제
enum Status { loading, success, error }
void handleStatus(Status status) {
if (status == Status.success) {
print('작업 성공!');
} else if (status == Status.error) {
print('작업 실패..');
} else {
print('작업 중...');
}
}
Set과의 차이점
구분 Set Enum
| 값 추가/삭제 | 가능 | 불가능 |
| 중복 허용 | ❌ 제거만 함 | ❌ 중복 정의 시 오류 발생 |
| 순서 | 없음 | 있음 (index 존재) |
| 목적 | 집합 데이터 관리 | 상수 값 그룹 정의 |
// Set: 추가 가능
var fruits = <String>{};
fruits.add('사과');
fruits.add('사과'); // 중복되지만 오류 없음
print(fruits); // {사과}
// Enum: 중복 정의 불가
enum Color { red, green, red } // Error: 'red' is already declared
아래 코드를 직접 입력하고 출력 결과를 확인해보자.
enum Season { spring, summer, fall, winter }
void printSeasonMessage(Season season) {
switch (season) {
case Season.spring:
print('꽃 피는 봄입니다.');
break;
case Season.summer:
print('더운 여름입니다.');
break;
case Season.fall:
print('시원한 가을입니다.');
break;
case Season.winter:
print('추운 겨울입니다.');
break;
}
}
void main() {
printSeasonMessage(Season.fall);
}
요약
속성 설명
| .index | 해당 값의 순서 (0부터 시작) |
| .values | 전체 열거형 리스트 가져오기 |
| .name | 열거형 값의 이름 (문자열) |
열거형은 안정적이고 명확한 상수 집합을 정의할 때 . switch 문과 같이 자주 쓰이는 제어 구조와 함께 사용하면 코드를 훨씬 깔끔하게 만들 수 있다
'앱 > Flutter&Dart' 카테고리의 다른 글
| 자주쓰는 메서드 체이닝 (0) | 2025.06.24 |
|---|---|
| Dart 간단 정리 - 컬렉션 고차 함수 (0) | 2025.06.24 |
| 제네릭(Generic) 함수와 개념 (0) | 2025.06.24 |
| Dart 간단 정리 - 컬렉션 고차 함수 & Map 고급 활용 (0) | 2025.06.24 |
| 잘 모르면 애매한 Dart 간단 정리 - enum (0) | 2025.06.24 |