본문 바로가기

Flutter/Dart

Dart List - forEach, map, reduce, fold

반응형

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