Dart, 리스트 자료형 List
글. 수알치 오상문
다트의 배열은 리스트(List) 객체이다.
var list = [1, 2, 3]; // list는 List<int> 자료 형이므로 정수 값을 다룬다.
참고: 자료형 추론 type inference.
리스트의 끝 항목 뒤에 쉼표를 표기할 수 있으며 나중에 붙여넣기 할 때 오류를 줄여줍니다.
var list = [ 'Car', 'Boat', 'Plane', ];
리스트 인덱스는 0부터 시작합니다. 인덱스 범위는 0에서 list.length - 1까지입니다. length는 리스트의 길이를 돌려줍니다.
var list = [1, 2, 3];
assert(list.length == 3);
assert(list[1] == 2);
list[1] = 1;
assert(list[1] == 1);
컴파일-시간 상수형 리스트를 만들려면 리터럴 리스트 값 앞에 const 지시어를 붙입니다.
var constantList = const [1, 2, 3];
constantList[1] = 1; // 오류 발생! 상수값 수정 금지 위반.
다트 2.3에서 리스트 같은 컬렉션에 다중 값을 삽입하는 전개 연산자(...) 그리고 널-인식 전개 연산자(...?)를 도입했습니다. 다음 예제는 다른 리스트와 전개 연산자를 이용하여 리스트 초기화를 합니다.
var list = [1, 2, 3];
var list2 = [0, ...list]; // [0, 1, 2, 3]
assert(list2.length == 4);
전개할 대상이 null인 경우에 널-인식 전개 연산자(...?)를 사용하여 예외를 피할 수 있습니다.
var list; // null 상태인 list
var list2 = [0, ...?list];
assert(list2.length == 1);
print(list2); // [0]
참고: 전개 연산자에 더 자세한 정보는 spread operator proposal.
Dart는 컬렉션용 if 및 for를 제공하며, 조건문(if) 및 반복(for)을 사용하여 컬렉션을 구축하는 데 사용할 수 있습니다. 다음 예제는 promoActive 상태가 true이면 'Outlet'이 추가됩니다.
var promoActive = true;
var nav = [ 'Home', 'Furniture', 'Plants', if (promoActive) 'Outlet' ];
print(nav); // [Home, Furniture, Plants, Outlet]
다음은 컬렉션 for 문을 아용한 리스트 초기화 예입니다.
var listOfInts = [1, 2, 3];
var listOfStrings = [ '#0', for (var i in listOfInts) '#$i' ];
assert(listOfStrings[1] == '#1');
print(listOfStrings); // [#0, #1, #2, #3]
참고: 더 자세한 컬렉션 if/for 정보 control flow collections proposal.
리 스트에서 지원하는 메서드에 대한 자세한 내용을 아래 링크를 참조합니다.
참조: Generics / Collections.
<이상>
'Dart' 카테고리의 다른 글
Dart, 맵(사전) 자료형 Map (0) | 2021.06.14 |
---|---|
Dart 집합 자료형 Set (0) | 2021.06.14 |
Dart 논리 자료형 bool (0) | 2021.06.12 |
Dart 문자열 자료형 String (0) | 2021.06.12 |
Dart 숫자 자료형 num, int, double (0) | 2021.06.12 |