List도 클래스
# forEach 함수 - Looping - for 함수쓰는 것과 같음
List<String> student = [
'가방',
'노트북',
'충전기',
]
student.forEach((value){ // 함수를 인자로 받는다. parameter안에 이름은 아무거나 가능
print(value);
});
결과: 가방
노트북
충전기
# map - Mapping
final newList = student.map((value){ // Map은 return 값을 받을 수 있다.
return '학생이 챙겨야할 물건은 $value입니다.';
});
print(newList);
결과: (학생이 챙겨야할 물건은 가방입니다.,학생이 챙겨야할 물건은 노트북입니다.,학생이 챙겨야할 물건은 충전기입니다.) // 새로운 Iterable( [list]보다 부모 클래스)이 만들어짐 리스트로 바꾸고 싶을 때는 newList.toList();
# Reduce/Fold - 값들을 받고 total을 쌓아가는 함수
List<int> numbers = [1,2,3,4,5,6];
int result = numbers.fold(5,(total, element){ // total의 초기값을 설정할 수 있음 여기서는 5
return total+ element; // 값이 element로 들어가고 리턴값이 다음 total 값이 됨
})
print(result); // 결과 26
int result2 = numbers.reduce((total, element){ // 초기값을 설정할 수 없음
return total + element;
})
print(result); // 결과 21
* reduce 와 fold의 차이점
reduce는 리스트 안에 있는 값의 데이터 타입과 reduce함수가 return하는 데이터 타입이 같아야함.
'Flutter > Dart' 카테고리의 다른 글
Dart 언어 기본기 (0) | 2023.07.05 |
---|---|
Dart Map - entries, asMap (0) | 2023.02.10 |
Dart Class 클래스 (0) | 2023.02.09 |
Dart Functions 함수 (0) | 2023.02.08 |
Dart - Data Type 데이터 타입 (0) | 2023.02.07 |