List

A tour of the Dart language 페이지를 공부하면서 정리한 내용입니다.

Dart에서는 배열은 List 타입으로 제공됩니다. 리스트 리터럴은 JavaScript의 배열과 유사항 방식으로 생성합니다. 아래 코드에서 list의 타입은 List<int> 타입으로 추론됩니다. List<int> 타입에 다른 타입을 추가하려고 시도하면 컴파잁 타임 또는 런타임 오류가 발생합니다. 보다 자세한 내용은 여기를 참고해주세요.

Dart 컬렉션 리터럴의 마지막 항목 뒤에 쉼표(,)를 추가할 수 있습니다. 후행 쉼표(Trailing comma)는 컬렉션에 영향을 미치지 않지만, 복사-붙여넣기 시 오류를 방지할 수 있습니다. List 리터럴 앞에 const 키워드를 붙이면 컴파일 타임 상수로 선언할 수 있습니다.

void main() {
  // List<int> type
  var list1 = [1, 2, 3];
  
  list1.add(4);

  // Error: The argument type 'String' can't be assigned to the parameter type 'int'.
  // list1.add("String");

  var list2 = [
    'Car',
    'Boat',
    'Plane', // 리스트 요소 끝내 콤마를 추가할 수 있습니다.
  ];
  
  var constantList = const [1, 2, 3];
  // Error: Unsupported operation: indexed set
  // constantList[1] = 1;
}

List 객체의 인덱스는 0부터 시작하고 list.length - 1은 마지막 인덱스입니다. length 속성을 이용해 리스트의 길이를 알 수 있으며, 인덱스를 이용해 리스트 값을 참조할 수 있습니다.

Dart 2.3부터 전개 연산자(Spread operator, ...)와 Null-aware 전개 연산자(...?)를 도입하여 여러 값을 컬렉션에 삽입하는 편리한 방법을 제공하기 시작했습니다. 보다 자세한 내용은 여기를 참고해주세요.

Dart는 조건부와 반복을 사용하여 컬렉션을 생성할 수 있도록 해주는 collection ifcollection for를 제공합니다.

  • collection if : 조건식을 평가하여 true인 경우 표현식을 평가하여 컬렉션에 항목을 추가합니다.

  • collection for : 루프를 순회하며 표현식을 평하여 컬렉션에 항목을 추가합니다.

collection if와 for에 대한 자세한 내용은 여기를 참고해주세요. 제네릭컬렉션에 대한 자세한 내용은 링를 참고해주세요.

List 타입은 다양한 속성과 메서드를 제공하고 있습니다.

Last updated