Post

[Dart] 4. 컬렉션

※ https://dart-ko.dev/language/collections 을 참고하여 작성하였습니다.

  • Lists

    • 다양한 리스트 선언

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      
      var list1= [1, 2, 3];
          
      var list2= [
      	'Car',
      	'Boat',
      	'Plane',
      ];
          
      // 컴파일 타임 상수인 리스트: 값을 바꿀 수 없음
      var constantList= const [1, 2, 3];
      
    • 리스트 관련 메서드

      • add: 리스트 값 추가 / remove: 리스트 값 제거
      • where: 조건식으로 필터링
      • map, reduce, fold
  • Sets: 중복되지 않고, 정렬되지 않은 컬렉션

    • 다양한 세트 선언

      1
      2
      3
      
      Set<String> alpha= {'a', 'b', 'c', 'd'};
      var names= <String>{};
      Set<String> elements= {};
      
    • set 관련 메서드

      • add, addAll로 set에 요소 또는 set전체를 추가

      • set1.length

      • 컴파일 상수 set

        1
        2
        3
        4
        5
        6
        7
        8
        
        final constantSet = const {
          'fluorine',
          'chlorine',
          'bromine',
          'iodine',
          'astatine',
          };
          print(constantSet); // {fluorine, chlorine, bromine, iodine, astatine}
        
  • Maps

    • Explanation

      • 키와 값으로 구성된 객체
      • 키와 값 모두 타입 상관 없음
      • 키는 유일하지만, 값은 중복될 수 있음
    • 다양한 map 선언

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      
       var gifts = {
        // 키:    값
        'first': 'partridge',
        'second': 'turtledoves',
        'fifth': 'golden rings'
        };
          
        var nobleGases = Map<int, String>();
        nobleGases[2] = 'helium';
        nobleGases[10] = 'neon';
        nobleGases[18] = 'argon';
      
    • map 관련 메서드

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      
      // 1. 키와 값의 쌍 추가
        gifts['fourth']= 'calling birds';
          
        // 2. 값 출력
        print(gifts); // {first: partridge, second: turtledoves, fifth: golden rings, fourth: calling birds}
        print(gifts['first']); // partridge
          
        // 3. map에 있는 키-값 쌍의 개수
        assert(gifts.length==5);
          
        // 4. 컴파일 타임 상수 map
        final constantMap = const {
        2: 'helium',
        10: 'neon',
        18: 'argon',
        };
      
  • 연산자

    • 전개 연산자

      • 전개 연산자(…)

      • null-aware 전개 연산자(…?)

        → … 뒤 컬렉션(iterable 객체?)이 null일 수 있으면 ? 붙이기

      1
      2
      3
      
      var list= [1, 2, 3];
      var list1= [0, ...list];
      assert(list1.length==4);
      
    • 제어-흐름 연산자: 컬렉션 내에 if문과 for를 활용

      • 활용 1: if 문에 true 조건을 넣어서 element 추가

        1
        2
        3
        
        var promoActive= true;
        var nav = ['Home', 'Furniture', 'Plants', if (promoActive) 'Outlet'];
        print(nav); // [Home, Furniture, Plants, Outlet]
        
      • 활용 2: if 문에 case 조건을 넣어서 element 추가

        1
        2
        3
        
        var login= 'Manager';
        var nav2 = ['Home', 'Furniture', 'Plants', if (login case 'Manager') 'Inventory'];
        print(nav2); // [Home, Furniture, Plants, Inventory]
        
      • 활용 3: for문을 넣어서 elements 추가

        1
        2
        3
        
        var listOfInts = [1, 2, 3];
        var listOfStrings = ['#0', for (var i in listOfInts) '#$i'];
        print(listOfStrings);
        
This post is licensed under CC BY 4.0 by the author.