본문 바로가기
Dart/Dart Programming language

[중급] Dart 컬렉션과 고차 함수/리스트(List), 맵(Map), 세트(Set) 활용법

by Maccrey Coding 2024. 9. 6.
728x90
반응형

 

Dart는 중급 개발자들에게 매우 유용한 기능들을 제공하며, 특히 컬렉션(List, Map, Set)과 고차 함수는 더 복잡한 로직을 효율적으로 구현할 수 있게 해줍니다.

이번 글에서는 Dart의 컬렉션과 고차 함수의 개념 및 활용법을 쉽게 설명하겠습니다.

1. Dart 컬렉션의 종류와 특징

1.1 리스트(List)

List는 Dart에서 가장 기본적인 컬렉션 타입입니다. 리스트는 순서가 있는 요소들의 집합이며, 요소를 추가하거나 제거할 수 있습니다. Dart에서는 제네릭을 사용해 특정 타입의 요소만을 포함하도록 리스트를 정의할 수 있습니다.

List<int> numbers = [1, 2, 3, 4, 5];
List<String> names = ['Alice', 'Bob', 'Charlie'];

1.2 맵(Map)

Map은 키와 값의 쌍으로 이루어진 컬렉션입니다. 각 키는 고유해야 하며, 이를 통해 값을 빠르게 검색할 수 있습니다.

Map<String, int> ages = {'Alice': 25, 'Bob': 30, 'Charlie': 35};

1.3 세트(Set)

Set은 순서가 없는 고유한 값들의 집합입니다. 동일한 값이 중복되지 않도록 보장하므로, 중복된 값을 허용하지 않는 컬렉션이 필요할 때 유용합니다.

Set<String> uniqueNames = {'Alice', 'Bob', 'Charlie'};

2. 고차 함수의 개념과 활용

고차 함수(Higher-Order Function)는 다른 함수를 인자로 받거나, 함수를 반환하는 함수입니다. Dart에서는 고차 함수가 컬렉션과 결합되어 매우 강력한 도구로 활용됩니다.

2.1 map() 함수

map() 함수는 리스트, 맵, 세트의 각 요소에 대해 주어진 함수를 적용하여 새로운 컬렉션을 반환합니다.

List<int> numbers = [1, 2, 3, 4, 5];
List<int> squaredNumbers = numbers.map((num) => num * num).toList();

2.2 where() 함수

where() 함수는 조건을 만족하는 요소들만을 필터링하여 새로운 컬렉션을 만듭니다.

List<int> evenNumbers = numbers.where((num) => num.isEven).toList();

2.3 reduce() 함수

reduce() 함수는 리스트의 모든 요소를 하나의 값으로 축약하는 데 사용됩니다.

int sum = numbers.reduce((value, element) => value + element);

2.4 forEach() 함수

forEach() 함수는 리스트, 맵, 세트의 모든 요소에 대해 특정 작업을 수행할 때 사용됩니다.

names.forEach((name) => print('Hello, $name!'));

3. Dart 컬렉션과 고차 함수의 활용 사례

여러 가지 Dart 기능을 결합해 컬렉션을 더 효율적으로 관리할 수 있습니다.

예를 들어, 다음과 같이 여러 함수를 함께 사용해 복잡한 로직을 간단하게 구현할 수 있습니다.

List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
List<int> result = numbers
    .where((num) => num.isEven)  // 짝수만 필터링
    .map((num) => num * num)     // 각 짝수를 제곱
    .toList();                   // 결과를 리스트로 변환

print(result);  // [4, 16, 36, 64, 100]

4. Dart의 컬렉션과 고차 함수 활용 팁

  • 불변 리스트: const 키워드를 사용해 리스트를 불변으로 만들 수 있습니다. 불변 리스트는 안전하며, 변경할 수 없다는 것을 보장합니다.
  • Set을 사용한 중복 제거: 리스트에 중복된 값이 포함되어 있을 때, 이를 Set으로 변환하면 쉽게 중복을 제거할 수 있습니다.
  • Map의 활용: Map은 데이터를 구조화하여 저장할 때 매우 유용합니다. Map을 사용해 데이터를 키와 값으로 관리하면 데이터 접근이 빠르고 용이합니다.

 

Dart의 컬렉션(List, Map, Set)과 고차 함수는 코드의 가독성을 높이고, 복잡한 로직을 간단하게 구현할 수 있는 강력한 도구입니다.

이 글을 통해 중급 수준의 Dart 문법을 이해하고, 이를 프로젝트에 적극 활용해보세요!

구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

 

728x90
반응형