자료형이 List일때 사용할 수 있는 함수 3가지를 비교하겠다.
forEach 는 List 데이터를 차례대로 받아오는 매개변수를 가지며, 실행문을 실행한다.
map 은 List데이터를 차례대로 받아오고 실행문안에서 return 값을 가질 수 있으며,
이 return 값은 시퀀스형태로 저장된다.
둘은 비슷하지만 map 함수는 return 값을 반환할 수 있고, 그래서 반환된 모든 값을 차례대로 변수에 저장 할 수 있다는게 차이점
둘의 공통점은 하나의 파라미터를 가지며, 그 하나의 파라미터는 함수형 파라미터로 코드를 작성해야 한다.
void main() {
//forEach
fruits.forEach((element) {
print('$element 는 과일입니다.');
});
//map
final fruit = fruits.map((element){return '$element 는 과일입니다.';});
print(fruit);
}
List<String> fruits = ['apple', 'banana', 'tomato'];
결과값은 아래와 같다.
Console
apple 는 과일입니다.
banana 는 과일입니다.
tomato 는 과일입니다.
(apple 는 과일입니다., banana 는 과일입니다., tomato 는 과일입니다.)
fold함수는 위 두가지와는 성격이 좀 다르다.
fold함수는 return 값이 계속 더해짐.
fold 함수는 positional parameter 를 두가지 가지며, 첫번째 자리는 몇번째 index값 부터 실행할지, 두번째 자리는 함수형 파라미터로 코드를 작성하면 된다.
함수형 파라미터는 두개의 포지셔널 파라미터를 가진다. 그 중 두번째 파라미터가 리스트 자료형을 차례대로 받아온다.
fold함수도 list 데이터를 차례대로 불러온다.
아래 예시에서
element가 리스트 자료형을 차례대로 받아오는 변수명이다.
void main() {
//fold
int total = numbers.fold(0,(total,element){
return total + element;});
print(total);
int total2 = fruits.fold(0,(total,element){
return total + element.length;
});
print(total2);
}
List<int> numbers = [10,20,30,40,50];
List<String> fruits = ['apple', 'banana', 'tomato'];
실행하면
150
17
로 출력된다.
'coding' 카테고리의 다른 글
flutter : Curved Navigation Bottom Bar (0) | 2022.07.27 |
---|---|
python : datetime 모듈 strftime, strptime (1) | 2022.07.10 |
Dart : constructor (positional or named argument) (0) | 2022.06.03 |
[linux/macOS] screen 명령어 (0) | 2022.06.02 |
Flutter : BuildContext (0) | 2022.05.27 |