enum이란?
- enum은 열거형 타입(enumerated type)의 줄임말로 enumerations, enums 으로도 불린다.
- 서로 연관된 상수를 모아놓은 집합이다.
- 정해 둔 값만 넣어둘 수 있는 타입이다.
- 많은 언어에서 사용되며 dart에서도 상수역할을 하는 식별자로서 사용된다.
- enum은 값의 집합을 이루는 자료형으로, 수가 정해져 있는 상수 인스턴스가 있는 클래스를 선언하는데 사용할 수 있다.
특징
- 인스턴스 변수는 final이어야 한다.
- 생성자 생성자는 상수여야 한다.
- 팩토리 생성자는 고정된 값 중 하나만 반환할 수 있다.
- 코드가 단순해지며 가독성을 높일 수 있다.
- 인스턴스 생성과 상속을 방지하고 상수값의 타입에 대한 안정성을 보장한다.
- 구현의 의도를 분명하게 알 수 있다.
- 상태와 행위 정의에 대한 관리가 명확해진다.
예제
enum Team { red, blue }
enum XPLevel { beginner, medium, pro }
class Player {
String name;
XPLevel xp;
Team team;
Player({
required this.name,
required this.xp,
required this.team,
});
void sayHello() {
print("hi my name is $name");
}
}
void main() {
var shin = Player(
name: 'shin',
xp: XPLevel.medium,
team: Team.red,
)
..name = 'las'
..xp = XPLevel.pro
..team = Team.blue
..sayHello();
}