inblog logo
|
나새끼메이커
    TIL (Today I Learned)

    열거형 (Enumerations)

    Eungae's avatar
    Eungae
    Dec 08, 2025
    열거형 (Enumerations)
    Contents
    switch문으로 포함된 값 각각을 다루기.values를 통해 열거형에 포함된 값들을 알아보기.name을 통해 열형에 포함된 값으 이름 확인하기.index를 통해 열거형에 포함된 값이 열거형의 몇 번째에 있는지 확인Set과의 차이점

    여러 개의 상수 값을 묶은 형태

    enum의 선언은 main 함수 이전에 top-level에서 선언되어야 한다. (like import)

    enum [열거형 이름] {요소}

    enum Beer { lager, pilsner, stout, ale }
    
    void main() {
      var favoriteBeer = Beer.lager;
      print(favoriteBeer);
    } // Beer.lager

    switch문으로 포함된 값 각각을 다루기

    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 발생 X

      • enum 발생 O

    • 요소들 사이에 순서가 있는지

      • Set 없음

      • enum 있음 — index 있음

    Share article
    Contents
    switch문으로 포함된 값 각각을 다루기.values를 통해 열거형에 포함된 값들을 알아보기.name을 통해 열형에 포함된 값으 이름 확인하기.index를 통해 열거형에 포함된 값이 열거형의 몇 번째에 있는지 확인Set과의 차이점

    나새끼메이커

    RSS·Powered by Inblog