프로그래밍 공부 메모/flutter
List 다루기 Looping / Mapping / Reduce / Fold
jjs815
2022. 5. 17. 22:50
void main() {
//Looping
//Mapping
//Reduce/Fold
List<String> redVelvat = ['아이린', '슬기', '웬디', '조이', '예리'];
//Looping - forEach
redVelvat.forEach((val){
print(val);
});
for(String val in redVelvat){
print(val);
}
//Mapping = map
final newList = redVelvat.map((val){
return '제 이름은 $val 입니다'; //return 값이 있다
});
print(newList.toList());
//Reduce/Fold - reduce, fold(시작하는 index 위치를 정할 수 있다) 값을 누적 시킴
List<int> numbers = [0,1,2,3,4,5];
int total = numbers.fold(0, (total,element){
return total + element;
});
print(total);
//#1
//시작 index = 0
//값 element = 0
//이전 total = 0
//return = 0
//#2
//index = 1
//element = 1
//total = 0
//return = 0 + 1 = 1
//#3
//index = 2
//element = 2
//total = 1
//return = 1 + 2 = 3
//#4
//index = 3
//element = 3
//total = 3
//return = 3 + 3 = 6
int total2 = numbers.reduce((total, element){
return total + element;
});
print(total2);
List<String> names = ['jjs','레드벨벳','bts'];
//fold는 리턴 값과 변수의 타입이 일치 하지 않아도 사용가능
int total3 = names.fold(0,(total,element){
return total + element.length;
});
//reduce는 리턴 값과 변수의 타입이 같아야 한다
final total4 = names.reduce((total, element){
return total + element.length; //에러
});
}
반응형