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
}