320x100
void main() {
final List<Map<String, String>> people = [
{'name': '지수', 'group': '블랙핑크'},
{'name': '제니', 'group': '블랙핑크'},
{'name': '뷔', 'group': 'BTS'},
{'name': '정국', 'group': 'BTS'},
];
print(people);
// [{name: 지수, group: 블랙핑크}, {name: 제니, group: 블랙핑크},
// {name: 뷔, group: BTS}, {name: 정국, group: BTS}]
print('');
final parsedPeople = people.map(
// 각각 !를 넣어서 "이 값은 존재한다. 라고 전달해줘야한다."
(x) => Person(name: x['name']!, group: x['group']!),
).toList();
print(parsedPeople);
// [Instance of 'Person', Instance of 'Person', Instance of
// 'Person', Instance of 'Person']
print('');
for (Person person in parsedPeople){
print(person.name);
print(person.group);
}
// 지수
// 블랙핑크
// 제니
// 블랙핑크
// 뷔
// BTS
// 정국
// BTS
print('');
final bts = parsedPeople.where(
(x) => x.group == 'BTS'
);
print(bts);
print('');
final result = people.map(
(x) => Person(
name: x['name']!,
group: x['group']!
)
).where((x) => x.group == 'BTS');
print(result);
// (Instance of 'Person', Instance of 'Person')
print('');
}
class Person {
final String name;
final String group;
Person({required this.name, required this.group});
}
functional program - 펑셔널 프로그램의 특징은
1. 실행하는 대상인 List, Map, Set 등과 완전히 다른 새로운 값을 생성해준다.
2. 여러 함수들을 chaining 해줄 수 있어서 여러가지 새로운 것을 구현 할 수 있다.
300x250
'개발일지 > 임시카테고리' 카테고리의 다른 글
플러터 정리본 - HEX코드, 16진수 표현, option (0) | 2025.03.28 |
---|---|
플러터(flutter) - 가로, 세로 (Row, Column) (1) | 2025.03.28 |
dart - cascading (다트 - 캐스캐이딩) (0) | 2025.03.24 |
dart - fold (reduce와 비슷한 반복문) (0) | 2025.03.24 |
dart - reduce 설명 (loop문), 애로우문 포함 (0) | 2025.03.24 |