반응형

Dart, 맵(사전) 자료형 Map

 

글. 수알치 오상문

 

사전이라고도 불리우는 맵은 키와 그 키에 대응하는 값이라는 구조로 이루어진 요소들의 모임입니다. 키와 값은 다양한 자료형이 될 수 있습니다. 각 키는 하나의 값을 가지는 값을 다른 키에서도 사용될 수 있지만, 키는 유일한 값이어야 합니다. 다트는 맵 자료형을 위한 Map 형을 제공합니다. 다음은 맵 객체를 생성하고 초기화하는 예입니다.

 

var gifts = { 'first': 'partridge', 'second': 'turtledoves', 'fifth': 'golden rings' };  // 키:값 쌍의 요소들 

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

 

참고: 예제에서 다트는 주어진 초기화 값을 통해 Map<String, String> 또는 Map<int, String>으로 인식합니다. 만약 키와 값의 형이 다르다면 오류를 일으킵니다. 자세한 정보: type inference.

 

Map 생성자를 이용하여 맵 객체를 만들 수 있습니다.

 

var gifts = Map<String, String>();  // 문자열 키와 문자열 값을 갖는 맵 

gifts['first'] = 'partridge';

gifts['second'] = 'turtledoves';

gifts['fifth'] = 'golden rings';

 

var nobleGases = Map<int, String>(); // 정수형 키와 문자열 값을 갖는 맵 

nobleGases[2] = 'helium';

nobleGases[10] = 'neon';

nobleGases[18] = 'argon';

 

참고: C#, Java처럼 new Map() 형식을 사용할 수 있지만 이건 선택사항입니다. 참조:Using constructors.

 

맵에 새로운 키:값 쌍 값을 추가할 수 있습니다. 기존에 없던 키에 할당하면 새로운 키:값 쌍으로 추가됩니다.

 

var gifts = {'first': 'partridge'};

gifts['fourth'] = 'calling birds'; // 새로운 키:값으로 할당

 

만약 존재하는 키에 할당하면 그 키의 값이 수정됩니다.

 

var gifts = {'first': 'partridge'};

assert(gifts['first'] == 'partridge');

 

존재하지 않은 키를 이용하여 맵에서 값을 얻으려고 한다면 null 값을 돌려줍니다.

 

var gifts = {'first': 'partridge'};

assert(gifts['fifth'] == null);

 

맵의 요소 개수를 알고 싶으면 length를 이용합니다.

 

var gifts = {'first': 'partridge'};

gifts['fourth'] = 'calling birds';

assert(gifts.length == 2);

 

컴파일 시간에 맵을 상수 형태로 만들고 싶으면 final 맵 변수에 const 값으로 초기화합니다.

 

final constantMap = const { 2: 'helium', 10: 'neon', 18: 'argon', };

// constantMap[2] = 'Helium';  <-- 상수형이므로 고칠 수 없음

 

리스트, 집합 형처럼 맵도 전개 연산자(... 그리고 ...?), 컬렉션 if 그리고 for 문을 지원합니다.

자세한 참조: spread operator proposal 그리고 control flow collections proposal.

 

맵에 대한 자세한 정보: Maps API.

 

<이상>

 

반응형

'Dart' 카테고리의 다른 글

Dart, 이름없는 함수  (0) 2021.06.15
Dart, 함수  (0) 2021.06.14
Dart 집합 자료형 Set  (0) 2021.06.14
Dart 리스트 자료형 List  (0) 2021.06.12
Dart 논리 자료형 bool  (0) 2021.06.12

+ Recent posts