목차
반응형
안녕하세요!
다트 언어의 스프레드 연산자, Map, Set에 대해 알아보겠습니다.
스프레드 연산자
- 스프레드 연산자(...)는 컬렉션을 펼쳐주는 연산자
- 다른 컬렉션 안에 컬렉션을 삽입할 때 사용
var items = ['모니터', '키보드', '마우스'];
var items2 = ['스피커', ...items, '헤드셋']; //스피커, 모니터, 키보드, 마우스, 헤드셋
- Set에 리스트를 담으면 자동으로 중복 제거
final items = [1, 2, 2, 3, 3, 4, 5];
final myNum = {...items, 6, 7}; //1, 2, 3, 4, 5, 6, 7
Map
- 순서가 없고 탐색이 빠른 자료구조 컬렉션
- 키(key)와 값(value)의 쌍으로 이루어져 있어 키를 이용하여 값을 빠르게 검색
- 만약 요청한 키에 해당하는 값이 없으면 null을 반환
void main() {
//Map<String, String> cityMap = { ...... };
var cityMap = {
'한국':'부산',
'미국':'시카고',
'영국':'런던'
};
cityMap['한국'] = '서울';
print(cityMap.length); //3
print(cityMap['미국']); //시카고
print(cityMap['러시아']); //null
cityMap['러시아'] = '모스크바'; //새로운 값 추가
print(cityMap['러시아']); //모스크바
}
Set
- 집합을 표현하는 자료구조 컬렉션
- add(), remove() 메서드로 집합에 추가하거나 삭제 가능
- contains() 메서드는 찾고자 하는 자료가 집합에 있는지 불리언 타입으로 반환
- 중복을 허용하지 않음
void main() {
//Set<String> citySet = {....};
var citySet = {'서울', '부산', '인천', '대구'};
citySet.add('대전'); //추가
citySet.remove('인천'); //삭제
print(citySet.contains('서울')); //true
print(citySet.contains('광주')); //false
}
- 빈 Set이나 빈 Map을 작성할 때 값 없이 {}만 작성하면 Set이 아닌 Map으로 인식
void main() {
var mySet = <String>{}; //Set<String>
var mySet2 = {}; //Map<dynamic, dynamic>
//타입 확인
print(mySet.runtimeType);
print(mySet2.runtimeType);
}
반응형
'자기계발 > IT' 카테고리의 다른 글
[Flutter/플러터] 다트(Dart) 언어 for, forEach 알아보기 (17) | 2023.03.04 |
---|---|
[Flutter/플러터] 다트(Dart) 언어 일급 객체 알아보기 (43) | 2023.03.02 |
[Flutter/플러터] 다트(Dart) 언어 List, dynamic 알아보기 (9) | 2023.02.24 |
[Flutter/플러터] 다트(Dart) 언어 열거 타입 알아보기 (20) | 2023.02.23 |
[Flutter/플러터] 다트(Dart) 언어 믹스인(mixin) 알아보기 (10) | 2023.02.23 |