enum
포스트
취소

enum

enum이란?

  • 정해진 수의 상수 값을 가지는 특별한 종류의 클래스
  • 열거 타입이라고 부른다.
  • 자동적으로 Enum 클래스를 확장한다.

사용 방법

//기본 형식
enum 이름 { 1, 2, 3 }

//사용 예시
enum Color { red, green, blue}

enum을 class처럼 사용하기

  • enum에 단순한 값이 아닌 class처럼 복합적인데이터를 가질수 있게 한다.
  • 규칙
    • 모든 변수는 final로 선언되어야 한다.
    • 생성자는 const로 선언되어야 한다.
    • factory 생성자는 고정된 enum 인스턴스 중 하나만 반환할 수 있다.
    • index, hashCode, 항등연산자(==)는 재정의할 수 없다.
    • value라는 이름의 변수는 사용할 수 없다.
enum Car implements Comparable<Car> {
  car1(maxSpeed: 60),
  car2(maxSpeed: 70),
  car3(maxSpeed: 80);
    
  const Car({
    required this.maxSpeed,
  });

  final int maxSpeed;

  @override
  int compareTo(Car other) => this.maxSpeed - other.maxSpeed;
}

print(Car.car1.compareTo(Car.car2)); //출력 : -10

enum 사용하기

//값 접근
print(Car.car1.maxSpeed); //출력 : 60

//값 목록 확인
print(Car.values); //출력 : [Car.car1, Car.car2, Car.car3]

//명시된 순번 확인
print(Car.car1.index); //출력 : 0
print(Car.car2.index); //출력 : 1
print(Car.car3.index); //출력 : 2

//해당 요소의 항목명 확인
print(Car.car1.name); //출력 : car1
print(Car.car2.name); //출력 : car2
print(Car.car3.name); //출력 : car3
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.