320x100
728x90
반복문을 사용하지 않고 리스트의 총 합을 구할 수 있는 방법이 있다.
fold ( )를 사용하면 된다.
공식 문서를 보자
https://api.dart.dev/stable/1.10.1/dart-core/List/fold.html
dynamic fold(
initialValue,
dynamic combine(previousValue, E element)
dynamic combine(previousValue, E element)
)
collection의 각 요소를 기존 값과 반복적으로 결합하여 collection의 합을 단일값으로 만들어준다.
initialValue를 초기 값으로 사용한 다음,
요소를 반복하고 결합 함수를 사용하여 각 요소로 값을 업데이트 시킨다.
var value = initialValue;
for (E element in this) {
value = combine(value, element);
}
return value;
사용은 다음과 같다.
iterable.fold(0, (prev, element) => prev + element);
예시)
List<int> myList = [1, 3, 5, 8, 7, 2, 11];
int result = myList.fold(0, (sum, element) => sum + element);
print(result);
output : 37
리스트 안에서 가장 큰 수 구하기
final myList = [1, 3, 5, 8, 7, 2, 11];
final int result = myList.fold(myList.first, (max, element) {
if (max < element) max = element;
return max;
});
print(result);
output : 11
가장 작은 수 구하기
final myList = [10, 3, 5, 8, 7, 2, 11];
final int result = myList.fold(myList.first, (min, element) {
if (min > element) min = element;
return min;
});
print(result);
output : 2
참고 및 출처 : https://www.kindacode.com/article/flutter-dart-fold-method-examples/
728x90
반응형
'Flutter' 카테고리의 다른 글
[Flutter/플러터] Freezed 플러그인 사용하기 - (1) (0) | 2022.09.27 |
---|---|
[Flutter/플러터] getx를 사용하여 like 버튼(하트 버튼) 만들기 (0) | 2022.09.23 |
[Flutter/플러터] 플러터 상태관리 - Getx(GetBuilder, Reactive State Manager)(1) (0) | 2022.09.23 |
[Flutter/플러터] 키보드 overflowed 문제 해결하기(키보드 열림 무시) (0) | 2022.09.21 |
[Flutter/플러터] Dart에서의 변수 할당(final, const, static) (1) | 2022.09.21 |