[OSAM] DART 언어 기초(15) LIST 심화

2403 단어 dartOSAMOSAM

> List 심화

> forEach

forEach : 각각 값을 루핑하면서 함수를 실행
list.forEach((parameter){function});

void main(){
  List<String> redVelvet = [
    '아이린',
    '슬기',
    '웬디',
    '조이',
    '예리'
  ];
  redVelvet.forEach((value){
	print(value);
  }); 
  결과값 : 아이린,슬기,웬디,조이,예리

> map

map : return값을 받을 수 있음, 원래 리스트를 기반으로 새로운 리스트를 생성
but : ( ) 소괄호로 출력
newList = list.map((parameter){function});

void main(){
  List<String> redVelvet = [
    '아이린',
    '슬기',
    '웬디',
    '조이',
    '예리'
  ];
  final newList = redVelvet.map((value){
    return '제 이름은 $value입니다';
  });
  print(newList);

> reduce, fold

fold(시작값,(다음 루프 리턴값, 파라미터){function})

List<int> numbers = [0,1,2,3,4,5];
int total = numbers.fold(0, (total, element){
    return total += element;
  });
  print(total);

reduce((다음리턴값, 파라미터)){function});

  int total2 = numbers.reduce((total,element){
    return total += element;
  });
  print(total2);

※ reduce와 fold의 차이점
if) 각각 element와 return값의 타입이 다르면 reduce를 쓸 수 없음!
if) 타입이 같고 시작값이 처음값이면 reduce 사용 가능

> arrow 함수

arrow함수 : 한줄 리턴 함수 : =>
(괄호 필요 x)

List<int> numbers = [0,1,2,3,4,5];
int total = numbers.fold(0, (total, element) => total += element);
  print(total);




좋은 웹페이지 즐겨찾기