flutter 에서 Map Type 을 사용할때 구조분해를 활용해서 데이터를 처리하려고한다.
간단한 예제이다.
void main() {
Map<String, int> test = {
'아메리카노': 3000,
'카페라떼': 4500,
}
}
test.entries.forEach((entry) {
String name = entry.key.toString();
int price = entry.value;
print('$name 의 금액은 $price 이다')
})
이렇게 작성할 경우에
'아메리카노의 금액은 3000원 입니다.'
'카페라떼의 금액은 4500원 입니다.'
이렇게 출력된다.
entries를 사용한 이유는
print(test.entries)
이렇게 작성하고 결과를 확인하면
(MapEntry(아메리카노: 3000), MapEntry(카페라떼: 4500))
이렇게 나온다
즉 이 entries 속성은 Map의 각 키-값 쌍에 대한 MapEntry 라는 객체의 집합을 가져온다.
entries는 Map을 순회할때, 키-값 쌍을 쉽게 추출하고 처리하기 위해서이다.
entries를 사용하면 Map의 각 항목에 대해 키와 값을 함께 처리할 수 있게 되기 때문이다.
forEach 는 Dart에서 Iterable 타입 (예: List, Set) 및 Map 타입에서 사용할 수 있는 메서드이다.
Map에서 사용하기 위해서는 entries 또는 다른 속성을 사용하여 각 항목에 접근해야 한다.
그리고 forEach는
1. 컬렉션의 각 항목에 대해 동일한 작업을 수행할 때
2. 간단한 작업이 필요한 경우 , 요소들을 출력하거나 , 특정 값을 추가하거나 변경할 때
3. 함수형 프로그래밍 스타일을 사용하고자 할 때
forEach의 장점은
1. 코드 가독성 향상 : 간단한 작업에 대해 단순 반복문ㅂ다 가독성이 좋은 코드 작성 가능
2. 간결함 : 각 항목에 대해 적용할 함수를 한 번에 지정할 수 있어 코드 길이를 줄일 수 있음
3. 함수형 프로그래밍 방식 : forEach를 사용하면 코그에 함수형 프로그래밍 스타일을 도입할 수 있다.