Dart Collections

MJ·2023년 5월 22일
0

Dart Basic

목록 보기
3/12

Lists

  • 가장 일반적인 Collection
  • 배열 또는 순서가 지정된 개체 그룹
  • 마지막 아이템에 , 붙여도
  • 0 기반 인덱싱 사용, 0은 첫번째 인덱스 list.length - 1은 마지막 아이템
var list = [1, 2, 3,];

var list = [1, 2, 3];
assert(list.length == 3);
assert(list[1] == 2);

list[1] = 1;
assert(list[1] == 1);

Sets

  • 고유한 아이템들의 무질서한 컬렉션
  • 빈 set을 생성할 때는 타입뒤에 {}을 사용
  • add() 또는 addAll()을 사용해 데이터를 추가함
  • .length를 사용해 set의 항목 수를 가져옴
  • 상수인 집합을 만들려면 set 리터럴 앞에 const를 추가함
var halogens = {'fluorine', 'chlorine', 'bromine', 'iodine', 'astatine'};

var names = <String>{};
// Set<String> names = {}; // This works, too.
// var names = {}; // Creates a map, not a set.

var elements = <String>{};
elements.add('fluorine');
elements.addAll(halogens);
assert(elements.length == 5);

final constantSet = const {
  'fluorine',
  'chlorine',
  'bromine',
  'iodine',
  'astatine',
};
// constantSet.add('helium'); // This line will cause an error.

Maps

  • 키 값과 밸류 값을 연결하는 객체
  • 키와 밸류는 모든 타입이 가능함
  • 각 키는 중복될 수 없지만 밸류 값은 중복 가능함
var gifts = {
  // Key:    Value
  'first': 'partridge',
  'second': 'turtledoves',
  'fifth': 'golden rings'
};
gifts['first'] = 'partridge';
gifts['second'] = 'turtledoves';
gifts['fifth'] = 'golden rings';

var nobleGases = {
  2: 'helium',
  10: 'neon',
  18: 'argon',
};

nobleGases[2] = 'helium';
nobleGases[10] = 'neon';
nobleGases[18] = 'argon';

// [] = 을 사용해 새로운 값을 추가함
var gifts = {'first': 'partridge'};
gifts['fourth'] = 'calling birds'; // Add a key-value pair

// [] 을 사용해 Map에서 값을 검색
var gifts = {'first': 'partridge'};
assert(gifts['first'] == 'partridge');

// Map에 없는 값을 검색하면 null을 반환함
var gifts = {'first': 'partridge'};
assert(gifts['fifth'] == null);

// .length를 사용해 Map 사이즈를 가져옴
var gifts = {'first': 'partridge'};
gifts['fourth'] = 'calling birds';
assert(gifts.length == 2);

// const를 붙여 상수 값으로 사용
final constantMap = const {
  2: 'helium',
  10: 'neon',
  18: 'argon',
};

// constantMap[2] = 'Helium'; // This line will cause an error.

Operators

  • Spread 연산자를 이용해 리스트에 다른 리스트 값을 한번에 추가함
var list = [1, 2, 3];
var list2 = [0, ...list];
assert(list2.length == 4);
  • Spread 연산자를 통해 넣는 값이 null일 수 도 있는 경우에는 null-aware spread 연산자를 사용(...?)
var list2 = [0, ...?list];
assert(list2.length == 1);
  • Control-flow 연산자
    -> Dart는 리스트, 맵에 값을 세팅하기위한 if문, 컬렉션 문을 지원
var nav = ['Home', 'Furniture', 'Plants', if (promoActive) 'Outlet'];

var nav = ['Home', 'Furniture', 'Plants', if (login case 'Manager') 'Inventory'];

var listOfInts = [1, 2, 3];
var listOfStrings = ['#0', for (var i in listOfInts) '#$i'];
assert(listOfStrings[1] == '#1');
profile
느긋하게 살자!

0개의 댓글