[Darts] List

misonaru·2024년 7월 23일

Dart

목록 보기
2/13
void main() {
  bool giveMeFive = true;
  List<int> numbers = [
    1,
    2,
    3,
    4,
    if (giveMeFive) 5, -- collection if
  ];

  print(numbers);
}
  • List 안에서 ,로 끝나면 자동으로 포매팅 해 줌
  • if (giveMeFive)의 의미는 아래와 같음
	if (giveMeFive) {
    numbers.add(5);
}

add()

  • List에 값을 추가할 때 사용. 추가하고 싶은 값을 매개변수에 입력.
void main() {
	List<String> diaList = ['희현', '예빈', '주은', '유니스', '은채']
    
    diaList.add('채연');
    
    print(diaList) = [희현, 예빈, 주은, 유니스, 은채, 채연];
    
===================================================
(희현, 예빈)
[희현, 예빈]


}

where()

  • List에 있는 값들을 순서대로 루프하며 특정 조건에 맞는 값만 필터링 하는 데 사용.
    매개변수에 함수를 입력해야하며, 함수는 기존 값을 하나씩 매개변수로 받음.
    각 값별로 ture를 반환하면 값을 유지, false를 반환하면 값을 버림.
void main() {
	List<String> diaList = ['희현', '예빈', '주은', '유니스', '은채', '채연']
    
    final newList = diaList.where(
    	(name) => name == '희현' || name == '예빈',
    );
    
    print(diaList);
    print(diaList.toList());

===================================================
(희현, 예빈)
[희현, 예빈]
}

map()

  • List에 있는 값들을 순서대로 순회하며 값을 변경할 수 있음.
    매개변수에 함수를 입력해야 하며, 입력된 함수는 기존 값을 하나씩 매개변수로 입력 받음.
    반환하는 값이 현잿값을 대체하며 순회가 끝나면 Iterable 반환.
void main() {
	List<String> diaList = ['희현', '예빈', '주은', '유니스', '은채', '채연']
    
    final newDiaList = diaList.map(
    	(name)) => 'DIA $name,	// 리스트의 모든 값 앞에 'DIA' 추가
    );
    
    print(newDiaList);
    print(newDiaList.toList());
   

===================================================
	(DIA 희현, DIA 예빈, DIA 주은, DIA 유니스, DIA 은채, DIA 채연)
	[DIA 희현, DIA 예빈, DIA 주은, DIA 유니스, DIA 은채, DIA 채연]
}

reduce()

  • List에 있는 값들을 순회하면서 매개변수에 입력된 함수를 실행. 순회할 때마다 값을 쌓아가는 특징이 있음. List 멤버의 타입과 같은 타입을 반환함.
void main() {
	List<String> diaList = ['희현', '예빈', '주은', '유니스', '은채', '채연']
    
    final allMembers = diaList.reduce((value, element) => value + ', ' + element)
    
    print(allMembers);
   
===================================================
	희현, 예빈, 주은, 유니스, 은채, 채연
}
fold()
  • reduce()와 실행되는 논리는 동일하나, reduce()와 달리 리스트 요소들의 타입이 같지 않아도, fold()는 어떠한 타입이든 반환할 수 있음.
void main() {
	List<String> diaList = ['희현', '예빈', '주은', '유니스', '은채', '채연']
    
    final allMembers = diaList.fold<int>(0, (value, element) => value + element.length );
    
    print(allMembers);
   
===================================================
	8
}
profile
미소와 나루 집사

0개의 댓글