Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- abap
- printf
- 엡
- java
- react
- npm
- lifecycle
- java 출력
- 앱심사
- nodejs
- 자바 출력 방식
- JQ
- firebase
- 배포
- develop
- 단축키
- println
- riverpod
- JS
- LLM
- UI/UX
- java 콘솔 출력 차이
- ListView
- Clean Architecture
- unity
- 자바 포맷 출력
- scss
- Flutter
- 자바스크립트
- DART
Archives
- Today
- Total
guricode
Dart 간단 정리 - 컬렉션 고차 함수 & Map 고급 활용 본문
이번 포스팅에서는 Dart에서 자주 쓰이는 컬렉션 고차 함수들과 Map 고급 활용 방법을 예제를 중심으로 정리해봤다.
고차 함수(Higher-Order Functions)란?
함수형 프로그래밍에서 자주 쓰이는 개념으로, 함수를 매개변수로 넘기거나 함수 자체를 리턴할 수 있는 함수. Dart의 컬렉션 메서드들도 대부분 이 개념을 바탕으로 만들어짐.
List 고차 함수 예제
1. forEach() - 요소 순회
List<String> fruits = ['사과', '바나나', '귤'];
fruits.forEach((fruit) {
print('맛있는 $fruit');
});
2. map() - 값 변환 후 새 리스트 생성
List<int> numbers = [1, 2, 3];
List<int> doubled = numbers.map((n) => n * 2).toList();
print(doubled); // [2, 4, 6]
3. where() - 조건에 맞는 요소 필터링
List<int> numbers = [1, 2, 3, 4, 5];
List<int> even = numbers.where((n) => n % 2 == 0).toList();
print(even); // [2, 4]
4. fold() - 누적 계산
List<int> numbers = [1, 2, 3, 4, 5];
int sum = numbers.fold(0, (prev, element) => prev + element);
print(sum); // 15
5. any() / every() - 조건 판별
List<int> scores = [80, 90, 70];
print(scores.any((score) => score < 60)); // false
print(scores.every((score) => score >= 70)); // true
Map 고급 활용
1. forEach() - 모든 키-값 순회
Map<String, int> scores = {'철수': 90, '영희': 85};
scores.forEach((key, value) {
print('$key 학생의 점수는 $value점입니다.');
});
2. map() - 새 Map 반환 (key 또는 value 가공)
Map<String, int> scores = {'철수': 90, '영희': 85};
var bonusScores = scores.map((key, value) => MapEntry(key, value + 5));
print(bonusScores); // {철수: 95, 영희: 90}
3. containsKey() / containsValue()
Map<String, int> scores = {'철수': 90, '영희': 85};
print(scores.containsKey('철수')); // true
print(scores.containsValue(100)); // false
4. keys, values 사용
Map<String, int> scores = {'철수': 90, '영희': 85};
print(scores.keys); // (철수, 영희)
print(scores.values); // (90, 85)
5. Map ↔ List 변환
Map<String, int> scores = {'철수': 90, '영희': 85};
var entries = scores.entries.toList();
print(entries); // [MapEntry(철수: 90), MapEntry(영희: 85)]
var backToMap = Map.fromEntries(entries);
print(backToMap); // {철수: 90, 영희: 85}
'앱 > Flutter&Dart' 카테고리의 다른 글
| Dart 간단 정리 - 열거형 (Enum) 완전 정복 (0) | 2025.06.24 |
|---|---|
| 제네릭(Generic) 함수와 개념 (0) | 2025.06.24 |
| 잘 모르면 애매한 Dart 간단 정리 - enum (0) | 2025.06.24 |
| 잘 모르면 애매한 Dart 간단 정리 - Collections (2) (0) | 2025.06.24 |
| 잘 모르면 애매한 Dart 간단 정리 - Collections (1) (0) | 2025.06.24 |