1) reduce
void main() {
List<int> numbers = [
1,
3,
5,
7,
9
];
final result = numbers.reduce((prev, next){
print('--------------');
print('previous : $prev');
print('next : $next');
print('total : ${prev + next}');
return prev + next;
});
print(result);
final result2 = numbers.reduce((prev, next) => prev + next);
print(result2);
List<String> words = [
'안녕하세요 ',
'저는 ',
'코드팩토리입니다.',
];
final sentence = words.reduce((prev, next) => prev + next);
// final sentence = words.reduce((prev, next) => prev.length + next.length); // return의 형태가 String이 아니기 때문에 안된다!!!
print(sentence);
}
2) fold
void main() {
List<int> numbers = [
1,
3,
5,
7,
9
];
final sum = numbers.fold<int>(0, (prev, next){
print('--------------');
print('previous : $prev');
print('next : $next');
print('total : ${prev + next}');
return prev + next;
});
print(sum);
List<String> words= [
'안녕하세요 ',
'저는 ',
'코드팩토리입니다.',
];
final sentence = words.fold<String>('', (prev, next) => prev + next);
print(sentence);
final count = words.fold<int>(0, (prev, next) => prev + next.length);
print(count);
}
'개발이 좋아서 > Flutter가 좋아서' 카테고리의 다른 글
[Dart] 3일차_함수형 프로그래밍_활용 (1) | 2022.12.14 |
---|---|
[Dart] 3일차_함수형 프로그래밍_cascade (1) | 2022.12.14 |
[Dart] 3일차_함수형 프로그래밍_where (0) | 2022.12.14 |
[Dart] 3일차_함수형 프로그래밍_형변환_list, map, set (0) | 2022.12.14 |
[Dart] 3일차_객체지향_상속_generic (2) | 2022.12.14 |