Lists

거의 모든 프로그래밍 언어에서 가장 일반적인 컬렉션은 array 일 것입니다. Dart에서 배열은 List 객체이므로 사람들은 그냥 lists이라고 부릅니다.

다트에서 List 리터럴은 대괄호([])로 묶인 쉼표로 구분된 표현식 또는 값으로 표시됩니다. 다음은 간단한 Dart List입니다.

var list = [1, 2, 3];

Note: Dart는 listList<int> 가 있다고 추론합니다. 이 list에 정수가 아닌 개체를 추가하려고 하면 런타임에서 오류가 발생합니다. 자세한 내용은 type inference에 대해 읽어보세요.

Dart 컬렉션 리터럴의 마지막 항목 뒤에 쉼표를 추가할 수 있습니다. 이 후행 쉼표는 컬렉션에 영향을 미치지는 않지만 복사-붙여넣기 오류를 방지하는 데 도움이 될 수 있습니다.

var list = [
  'Car',
  'Boat',
  'Plane',
];

List는 0부터 시작하는 인덱싱을 사용합니다. 여기서 0은 첫 번째 값의 인덱스이고 list.length - 1은 마지막 값의 인덱스입니다. .length 속성을 사용하여 List의 길이를 얻고 아래 첨자 연산자([])를 사용하여 List의 값에 접근할 수 있습니다.

var list = [1, 2, 3];
assert(list.length == 3);
assert(list[1] == 2);

list[1] = 1;
assert(list[1] == 1);

컴파일 타임 상수인 List를 만들려면 List 리터럴 앞에 const를 추가하세요.

var constantList = const [1, 2, 3];
// constantList[1] = 1; // 이 줄에서 에러가 발생합니다.

Dart 2.3에서는 여러 값을 컬렉션에 삽입하는 간결한 방법을 제공하는 스프레드 연산자(...)와 널 인식 스프레드 연산자(...?)를 도입했습니다.

var list = [1, 2, 3];
var list2 = [0, ...list];
assert(list2.length == 4);

스프레드 연산자 오른쪽에 있는 식이 널일 수 있는 경우 널 인식 스프레드 연산자(...?)를 사용하여 예외를 피할 수 있습니다.

var list2 = [0, ...?list];
assert(list2.length == 1);

스프레드 연산자 사용에 대한 자세한 내용과 예는 spread operator proposal을 참조하세요.

Dart는 또한 조건부(if)와 반복(for)을 사용하여 컬렉션을 구축하는 데 사용할 수 있는 collection ifcollection for 제공합니다.

다음은 collection if를 사용하여 3~4개의 항목이 포함된 List를 만드는 예입니다.

var nav = ['Home', 'Furniture', 'Plants', if (promoActive) 'Outlet'];

다음은 collection for을 사용하여 다른 List에 추가하기 전에 List의 항목을 조작하는 예입니다.

var listOfInts = [1, 2, 3];
var listOfStrings = ['#0', for (var i in listOfInts) '#$i'];
assert(listOfStrings[1] == '#1');

collection iffor에 대한 자세한 내용과 예제는 control flow collections proposal을 참조하세요.

List 타입에는 List을 조작하기 위한 많은 편리한 방법이 있습니다. List에 대한 자세한 내용은 GenericsCollections을 참조하세요.

Last updated