반응형

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

+ Recent posts