좋은 개발자는 리스트와 람다, 이터레이터 등을 잘 다루어야 한다고 하던데 맞는 말인가요?
다시 시작한 코딩 공부... 힘듬니다. 그래도 재미는 있네요.

Dart 언어에서 리스트 타입에 기본으로 탑재되어있는 함수중 reduce()와 fold()함수의 사용법입니다.
기본적으로 자바스크립트나 코틀린 등 다른 언어에서 쓰이는 바와 같은 용도로 사용됩니다.

fold() 함수는 시작값, value, element 이렇게 세개의 매개변수를 가집니다.
여기서 value는 주어진 코드의 결과값(처음은 시작값과 동일)이며 리스트의 첫번째 값이 element입니다.
리스트의 첫번째 값을 이용해 주어진 코딩을 실행하면 그 결과로 나오는 값을 value에 인계하고 element는 리스트의 두번째 값을 받습니다.
이런 식으로 리스트의 끝까지 순회하며 실행됩니다.
주로 리스트의 값을 하나로 압축한 결과로 나타낼 목적으로 사용합니다.

예를 들어서 백만원의 투자금으로 1주일동안 주식투자를 했을 때 수익률이
월요일 5%, 화요일 3.1%,  수요일 -2.3%(이런!), 목요일 1.1%, 금요일 0.3%일 경우 나의 투자금은 얼마일지 계산해봅시다.


fold function example of dart language
야호! 돈 벌었다.



여기서 balance는 value, rate는 element입니다.
수익률이 좀 쏠쏠하네요. 금방 부자되것어...

reduce() 함수는 fold()함수와 유사하지만 더 단순합니다. fold() 함수의 형태에서 매개변수로 시작값을 없애고 오직 value와 element만 있습니다. 즉, 시작값이 리스트의 첫번째 값이라는 것입죠.


example of reduce function in dart language
간단간단



자! 열심히 코딩 공부합시다. 하다 보면 뭐라도 되겠죠.

이상으로 포스팅을 마칩니다.

반응형

+ Recent posts