포스팅 환경
- Dart 2.18.2
개요
Dart 는 List, Map, Set 등의 Collection 을 제공합니다.
이번 포스팅에서는 Dart 에서 기본적인 Collection 을 어떻게 사용하는지 알아보려 합니다.
코드를 실행해서 테스트하고 싶은신 분들은 아래 사이트에서
실행할 수 있습니다 :)
List
Dart 에서의 List 구조는 여타 다른언어와 마찬가지로
같은 타입의 자료를 여러개 담을 수 있고 특정 인덱스로 요소를 접근할 수도 있습니다.
List 구조의 생성은 [] 를 통해 아래 코드 처럼 생성할 수 있습니다.
List<int> items = [1, 2, 3, 4, 5];
Java, Kotlin 처럼 List<T> 의 형태로 제네릭 타입을 지정하는 것도 가능합니다.
하지만 타입 추론이 가능하기 때문에 생략하는것도 가능합니다.
var items = [1, 2, 3, 4, 5];
요소를 추가하거나 접근하는 방법은 아래와 같습니다.
void main() {
var items = [1, 2, 3, 4, 5];
items[0] = 6;
items.removeAt(4);
for (var i = 0; i < items.length; i++) {
print(items[i]);
}
print("items length: ${items.length}");
}
// 결과
6
2
3
4
items length: 4
dynamic type
Dart 의 제네릭 타입에서 모든 타입을 대변할 수 있는 dynamic 이라는 특수한 타입이 있습니다.
이 타입을 사용하면 하나의 타입 뿐만 아니라 여러 타입을 담을 수도 있습니다.
List<dynamic> items = [1, "2", 3, true, 5];
이때도 명시적으로 List<dynamic> 을 쓸수도 있고 var 를 사용하여 생략이 가능합니다.
var items = [1, "2", 3, true, 5];
Set
Dart 에서의 Set 자료구조도 다른 언어와 마찬가지로
중복을 허용하지 않습니다.
Set 구조의 생성은 {} 을 통해 아래 코드 처럼 생성할 수 있습니다.
Set<int> items = {1, 2, 3, 4, 5};
Set 역시 타입 추론으로 제네릭 명시가 생략 가능합니다.
var items = {1, 2, 3, 4, 5};
요소를 추가하거나 접근하는 방법은 아래와 같습니다.
void main() {
Set<int> items = {1, 2, 3, 4, 5};
items.add(6);
items.add(3);
items.remove(4);
for (var i = 0; i < items.length; i++) {
print(items.elementAt(i));
}
print("items length: ${items.length}");
}
//결과
1
2
3
5
6
items length: 5
Set 을 선언할 때 주의사항이 있습니다.
내부에 값을 작성하지 않고 그냥 {} 만 선언하면
컴파일러에서 Set 이 아닌 Map 으로 인식합니다.
따라서 Set 으로 선언할 경우 타입을 지정하거나 제네릭타입을 넣거나
혹은 값을 작성해야 합니다.
// Set 이 아닌 Map<dynamic, dynamic> 으로 컴파일러가 인식
var items = {};
// Set 으로 인식
Set<int> items = {1, 2, 3};
// Set 으로 인식
var items = {1, 2, 3};
// Set 으로 인식
var items = <int>{};
Map
Dart 에서의 Map 구조도 다른 언어와 마찬가지로 키와 값의 쌍으로 이루어져 있습니다.
만약 찾으려는 키에 해당하는 값이 존재 하지 않는 다면 null 을 반환합니다.
Map 구조의 생성은 {} 을 통해 아래 코드 처럼 생성할 수 있습니다.
Map<String, int> items = {
"A" : 1,
"B" : 2,
"C" : 3
};
Map 역시 타입 추론에 의하여 제네릭 타입 명시 생략이 가능합니다.
var items = {
"A" : 1,
"B" : 2,
"C" : 3
};
요소를 추가하거나 접근하는 방법은 아래와 같습니다.
var items = {
"A" : 1,
"B" : 2,
"C" : 3
};
items["D"] = 4;
items.remove("A");
print(items["A"]);
for (var key in items.keys) {
print("key: $key, value: ${items[key]}");
}
print("items length: ${items.length}");
// 결과
null
key: B, value: 2
key: C, value: 3
key: D, value: 4
items length: 3
여기까지 Dart 에서 사용하는 기본적인 Collection 을 알아보았습니다.
이상으로 포스팅을 마치겠습니다.
감사합니다 :)
https://linitial.tistory.com/52?category=1050635
'Develop > Flutter' 카테고리의 다른 글
[Dart] 배우기 - 5. 객체지향 프로그래밍 (0) | 2022.11.05 |
---|---|
[Dart] 배우기 - 3. 분기와 반복 (0) | 2022.10.26 |
[Dart] 배우기 - 2. 함수 정의와 호출 (0) | 2022.10.25 |
[Dart] 배우기 - 1. 기본 문법 (0) | 2022.10.24 |
[Flutter] - 앱 실행 도중 멈춤 현상(IOS, 신뢰하지 않는 개발자) (0) | 2022.10.24 |