
여러 개의 상수 값을 묶은 형태
enum의 선언은 main 함수 이전에 top-level에서 선언되어야 한다. (like import)
enum [열거형 이름] {요소}
enum Beer { lager, pilsner, stout, ale }
void main() {
var favoriteBeer = Beer.lager;
print(favoriteBeer);
} // Beer.lagerswitch문으로 포함된 값 각각을 다루기
switch문은 이 열거형을 위해 나왔다고 봐도 과언이 아닐 정도로 열거형과 잘 맞는다고 한다.
enum Beer { lager, pilsner, stout, ale }
void main() {
var favoriteBeer = Beer.lager;
var result = '내가 제일 좋아하는 맥주는 ';
switch (favoriteBeer) {
case Beer.lager:
result += '라거!';
case Beer.pilsner:
result += '필스너!';
case Beer.stout:
result += '스타우트!';
case Beer.ale:
result += '에일!';
default:
result += '생맥주!';
}
print(result);
}
// 내가 제일 좋아하는 맥주는 라거!.values를 통해 열거형에 포함된 값들을 알아보기
열거형은 List<type>으로 추론된다.
enum Beer { lager, pilsner, stout, ale }
void main() {
print(Beer.values);
} // [Beer.lager, Beer.pilsner, Beer.stout, Beer.ale]enum Beer { lager, pilsner, stout, ale }
void main() {
print(Beer.values[1]);
} // Beer.pilsner.name을 통해 열형에 포함된 값으 이름 확인하기
enum Beer { lager, pilsner, stout, ale }
void main() {
print(Beer.values[1].name);
} // pilsner.index를 통해 열거형에 포함된 값이 열거형의 몇 번째에 있는지 확인
enum Beer { lager, pilsner, stout, ale }
void main() {
for (var beer in Beer.values) {
print("$beer : ${beer.index}");
}
}
/*
Beer.lager : 0
Beer.pilsner : 1
Beer.stout : 2
Beer.ale : 3
*/Set과의 차이점
새로운 값의 추가
Set=> 가능 :.add(),.addAll()enum=> 불가능
값의 제거
Set=> 가능 :.remove(),.removeAll()enum=> 불가능
중복 값을 넣었을 때 오류 발생
Set발생 Xenum발생 O
요소들 사이에 순서가 있는지
Set없음enum있음 —index있음
Share article