Dart 언어에서는 Map 이라는 자료구조를 제공합니다. Map 은 key-value 쌍으로 이루어져 있으며, key 는 중복되지 않아야 하며 value 는 중복이 가능합니다.
Map
Dart의 Map은 key-value 쌍으로 이루어져 있습니다. 자바스크립트의 객체, 파이썬의 딕셔너리와 구조가 비슷합니다.
var scores = {
'Bob': 36,
'Alice': 42,
'Charlie': 34,
};
위 코드에서 scores 라는 변수는 key 가 Bob , Alice , Charlie 이고, 각각의 value 가 36 , 42 , 34 인 Map 입니다.
- Map() 객체 사용
- var 대신 Map<> 사용
- Map 에 key가 존재하지 않을 경우 null 반환
- 복잡한 구조의 Map 생성
Map() 객체 사용
Map 을 사용하는 또 다른 방법은 Map() 생성자를 사용하는 것입니다.
var scores = Map();
scores['Bob'] = 36;
scores['Alice'] = 42;
scores['Charlie'] = 34;
변수를 Map() 생성자로 초기화 한 후, 새로운 key 와 value를 추가해준 결과입니다.
var 대신 Map<> 사용
var 대신 Map 클래스를 사용할 수 있습니다.
void main() {
Map<String, int> scores = {
'Bob': 36,
'Alice': 42,
'Charlie': 34,
};
print(scores);
}
Map 클래스의 <> 안에 key, value 의 데이터 타입을 정의합니다. 이후 정의한 데이터 타입에 맞춰 key, value를 채워줍니다.
Map 클래스를 사용할 때, value 의 데이터 타입 정의 부분을 Object로 채워주면 value에 다양한 데이터 타입의 데이터를 삽입할 수 있습니다.
void main() {
Map<String, Object> scores = {
'Bob': 36,
'Alice': 'pretty',
'Charlie': false,
};
print(scores);
}
결과는 아래와 같습니다.
Map 에 key가 존재하지 않을 경우 null 반환
Map에 key가 존재하지 않을 경우 'null' 을 반환합니다.
score map 에는 'john' 이라는 key가 존재하지 않기 때문에 null 을 반환하였습니다.
복잡한 구조의 Map 생성
Map을 이용하여 복잡한 구조로 변수를 선언해 줄 수 있습니다.
void main() {
List<Map<String, Object>> scores = [
{'Bob': 36, 'Alice': 'pretty', 'Charlie': false},
{'Bob': 36, 'Alice': 'pretty', 'Charlie': false},
];
print(scores[0]['Bob']);
}
위 코드의 scores는 리스트 내 데이터 타입을 Map으로 선언한 변수입니다. 다만 이렇게 선언할 경우 class를 활용하는 편이 낫습니다.
마무리
Dart 에서 Map 을 사용하는 방법을 알아봤습니다. Map 은 key-value 쌍으로 이루어져 있으며, key 는 중복되지 않아야 하며 value 는 중복이 가능합니다. Map 을 사용하면 데이터를 쉽게 관리할 수 있습니다.
오늘도 행복한 코딩생활 되시길 바라겠습니다.
감사합니다.
'개발 > Dart' 카테고리의 다른 글
Dart 기본 - 13. 함수 정의하기, fat arrow 사용 방법 (0) | 2023.01.30 |
---|---|
Dart 기본 - 12. Set 사용 방법 (1) | 2023.01.29 |
Dart 기본 - 10. 리스트에서 collection if, collection for 활용 하는 방법 (0) | 2023.01.28 |
Dart 기본 - 09. string interpolation, 문자열 $ 기호 사용 방법 (0) | 2023.01.27 |
Dart 기본 - 08. 리스트(list) 사용 방법 (0) | 2023.01.26 |
댓글