개요

오늘은 List의 fold() 메소드에 대해서 빠르게 알아봅시다.

 

  T fold<T>(T initialValue, T combine(T previousValue, E element)) {
    var value = initialValue;
    for (E element in this) value = combine(value, element);
    return value;
  }

 

생신건 이렇게 생겼습니다. JAVA만 파던 저에게는 뭐하는 메소드인지 감이 잘 안잡혔습니다. 함께 알아보도록 하죠.

 

 

fold()

fold는 initialValue을 시작으로 combine 값을 연산하는 방식입니다.

 

간단하게 수익률을 계산하는 메소드를 만들어보겠습니다.

void main() {

  double money = 1000000;

  List<double> rate = [5, -3.4, 0, 1.7, -4.5];

  double result = rate.fold(money,
      (previousValue, element) => previousValue + (previousValue * (element / 100)),);

}

 

fold 첫번째 인자에는 최초 시작값을 정해줍니다. 초기자금인 1,000,000원을 최초 시작값으로 설정합니다.

두번째 인자에는 T combine(T previousValue, E element) 를 넣어줍니다.

previousValue는 이전 계산된 값이고, element는 List에서 현재 인덱스가 가리키고있는 값을 의미합니다.

즉 fold가 첫번째 iterate 를 예를 들면 1000000 + (1000000 * (5 / 100)) 가 되는 것입니다.

 

 

오늘은 간단하게 fold 메소드에 대해서 알아보았습니다.

'Language > Flutter' 카테고리의 다른 글

[Flutter] 앱 이름 변경  (0) 2024.11.21
[Flutter] 위젯 생명주기(Lifecycle)  (0) 2024.11.20
[Flutter] 상태 관리 기초 - setState  (0) 2024.11.18
[Dart] Spread 연산자(...)  (0) 2024.11.17
[Dart] Null Safety  (0) 2024.11.16

+ Recent posts