devPharm
devPharm
devPharm
  • 분류 전체보기 (17)
    • coding (12)
    • medicine (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
devPharm

devPharm

coding

Dart : List 심화형 함수 (forEach, map, fold)

2022. 6. 9. 16:12

자료형이 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
    'coding' 카테고리의 다른 글
    • flutter : Curved Navigation Bottom Bar
    • python : datetime 모듈 strftime, strptime
    • Dart : constructor (positional or named argument)
    • [linux/macOS] screen 명령어
    devPharm
    devPharm

    티스토리툴바