배운것들을 정리합니다.
三昧境

Flutter/Dart Language

[플러터 Flutter] enum이란?

ujo_orr 2024. 7. 31. 21:09

 

enum(enumerate)은 열거형 이라고도 불리며 특정 값들의 집합을 정의하는 데 사용됩니다.
예를 들어, 요일, 계절, 상태 등을 나타낼 때 유용하며, 코드의 가독성을 높이고 특정 값들만 사용하도록 제한할 수 있어 오류를 줄이는 데 도움이 됩니다.

 

enum을 사용하는 이유

  • 코드 가독성 향상
    • 관련된 상수들을 그룹화하여 코드를 더 읽기 쉽고 이해하기 쉽게 만듭니다.
  • 타입 안전성
    • 컴파일 시점에 타입 체크를 통해 오류를 방지할 수 있습니다.
  • 유지보수 용이성
    • 관련 값들을 한 곳에서 관리할 수 있어 유지보수가 쉬워집니다.
  • 명확한 의도 전달
    • 코드의 의도를 명확하게 표현할 수 있습니다.
  • switch 문과의 호환성
    • enum은 switch 문과 잘 어울려 깔끔한 코드 작성이 가능합니다.
  • 값의 제한
    • 특정 값들로 제한된 집합을 만들 수 있습니다.

 

 

enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

void main() {
  Weekday today = Weekday.Wednesday;

  switch (today) {
    case Weekday.Monday:
      print('오늘은 월요일입니다.');
      break;
    case Weekday.Tuesday:
      print('오늘은 화요일입니다.');
      break;
    case Weekday.Wednesday:
      print('오늘은 수요일입니다.');
      break;
    case Weekday.Thursday:
      print('오늘은 목요일입니다.');
      break;
    case Weekday.Friday:
      print('오늘은 금요일입니다.');
      break;
    case Weekday.Saturday:
      print('오늘은 토요일입니다.');
      break;
    case Weekday.Sunday:
      print('오늘은 일요일입니다.');
      break;
  }
}

여기서

enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

이 코드들은 String 값이 아닙니다.

Weekday의 고유한 상수값입니다. 이 상수들은 List처럼 내부적으로 정수값은 0부터 시작합니다.

그렇다면

 

enum과 List는 같은가?

라고한다면 enum은 List와는 다릅니다.

enum은 특정 값들의 집합을 정의하는 데 사용되는 데이터 타입입니다.

반면에 List는 여러 요소를 순서대로 저장할 수 있는 컬렉션입니다.

또한 리스트는 <String> 처럼 리스트의 값을 지정해줄수 있습니다.

List<String> weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];

따라서

  • enum
    • 고정된 값들의 집합을 정의하는 데 사용
  • List
    • 여러 요소를 순서대로 저장하는 데 사용

 

로 이해할 수 있습니다.