본문 바로가기
개발/Dart

Dart 기본 - 11. Map 사용 방법

by 왼하루 2023. 1. 28.
반응형

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를 추가해준 결과입니다.

Map() 생성자

 

 

var 대신 Map<> 사용

var 대신 Map 클래스를 사용할 수 있습니다.

void main() {
  Map<String, int> scores = {
    'Bob': 36,
    'Alice': 42,
    'Charlie': 34,
  };
  print(scores);
}

 

Map 클래스의 <> 안에 key, value 의 데이터 타입을 정의합니다. 이후 정의한 데이터 타입에 맞춰 key, value를 채워줍니다.

map 클래스

 

Map 클래스를 사용할 때, value 의 데이터 타입 정의 부분을 Object로 채워주면 value에 다양한 데이터 타입의 데이터를 삽입할 수 있습니다.

void main() {
  Map<String, Object> scores = {
    'Bob': 36,
    'Alice': 'pretty',
    'Charlie': false,
  };
  print(scores);
}

 

결과는 아래와 같습니다.

value의 데이터 타입 Object

 

 

Map 에 key가 존재하지 않을 경우 null 반환

Map에 key가 존재하지 않을 경우 'null' 을 반환합니다.

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 을 사용하면 데이터를 쉽게 관리할 수 있습니다.

 

오늘도 행복한 코딩생활 되시길 바라겠습니다.

 

감사합니다.

댓글