<Flutter> Dart 에서의 Fold

반응형

 

Dart의 Fold 메서드

fold 메서드는 Dart 언어에서 Iterable 클래스의 메소드로 제공됩니다. 이를 사용하면 목록의 값들을 결합하여 단일 값으로 축소할 수 있습니다.

함수 원형:

T fold<T>(T initialValue, T combine(T previousValue, E element))
  • initialValue : 반복을 시작할 때 기본값으로 사용되며, 최종 결과의 타입도 결정합니다.
  • combine : 이 함수는 이전 값과 현재 원소를 결합하여 새로운 결과를 생성하는 데 사용됩니다.
  • 결과적으로, fold 메서드는 combine 함수를 사용하여 목록의 모든 원소를 하나의 결과 값으로 축소합니다.

Fold 메서드 사용 예제

1. 리스트의 합 구하기

void main() {
  final numbers = [1, 2, 3, 4, 5];

  final sum = numbers.fold(0, (accumulator, current) {
    return accumulator + current;
  });

  print('합계: $sum');  // 출력: 합계: 15
}

2. 최대값 찾기

void main() {
  final numbers = [5, 2, 8, 1, 6];

  final maxNumber = numbers.fold(numbers[0], (max, current) {
    return max > current ? max : current;
  });

  print('최대값: $maxNumber');  // 출력: 최대값: 8
}

3. 문자열 합치기

void main() {
  final words = ['Hello', 'Flutter', 'Dart'];

  final sentence = words.fold('', (accumulator, currentWord) {
    return accumulator.isEmpty ? currentWord : '$accumulator $currentWord';
  });

  print(sentence); // 출력: Hello Flutter Dart
}

위의 예제들처럼 Dart 언어의 fold 메서드를 사용하여 다양한 목적의 데이터 축소 작업을 수행할 수 있습니다. 이를 통해 코드가 깔끔해지고 읽기 쉬워집니다.

Designed by JB FACTORY