Dart의 주요 메소드: map, where, forEach

하요·2024년 7월 1일
0
post-thumbnail

Dart의 주요 메소드: map, where, forEach

Dart에서는 컬렉션을 처리할 때 다양한 메소드를 사용할 수 있습니다. 이 중에서 map, where, forEach는 리스트, 맵 등의 컬렉션을 조작하는 데 자주 사용됩니다. 이 메소드들은 컬렉션의 각 요소에 대해 작업을 수행하고, 필요한 경우 새로운 컬렉션을 반환하거나, 특정 조건에 맞는 요소들을 필터링하거나, 각 요소에 대해 특정 작업을 수행합니다.

주요 메소드 소개

  • map: 컬렉션의 각 요소에 대해 주어진 함수를 적용하여 새로운 컬렉션을 생성합니다.
  • where: 컬렉션의 각 요소에 대해 주어진 조건을 만족하는 요소들로 구성된 새로운 컬렉션을 생성합니다.
  • forEach: 컬렉션의 각 요소에 대해 주어진 함수를 실행합니다. 반환 값은 없습니다.

차이점

  • map:
    • 반환 값: 새로운 Iterable
    • 주요 사용 사례: 각 요소를 변환하여 새로운 컬렉션을 만들 때
    • 예: 리스트의 각 숫자를 제곱하여 새로운 리스트를 생성
  • where:
    • 반환 값: 새로운 Iterable
    • 주요 사용 사례: 특정 조건을 만족하는 요소들만 필터링할 때
    • 예: 리스트에서 짝수만 추출하여 새로운 리스트를 생성
  • forEach:
    • 반환 값: 없음(void)
    • 주요 사용 사례: 각 요소에 대해 반복 작업을 수행할 때
    • 예: 리스트의 각 요소를 출력

주요 활용도

  • 컬렉션 변환: 기존 컬렉션의 각 요소를 다른 형태로 변환하여 새로운 컬렉션을 생성할 때 map을 사용합니다.
  • 조건 필터링: 특정 조건을 만족하는 요소들만을 추출할 때 where를 사용합니다.
  • 반복 작업 수행: 컬렉션의 각 요소에 대해 반복 작업을 수행할 때 forEach를 사용합니다.
void main() {
  List<int> numbers = [1, 2, 3, 4, 5];

  // map을 사용하여 각 요소를 제곱
  List<int> squaredNumbers = numbers.map((number) => number * number).toList();
  print('Squared Numbers: $squaredNumbers'); // [1, 4, 9, 16, 25]

  // where를 사용하여 짝수만 필터링
  List<int> evenNumbers = numbers.where((number) => number.isEven).toList();
  print('Even Numbers: $evenNumbers'); // [2, 4]

  // forEach를 사용하여 각 요소 출력
  print('Original Numbers:');
  numbers.forEach((number) => print(number));
  // 출력:
  // 1
  // 2
  // 3
  // 4
  // 5
}

추가 팁

  • 효율성 고려: 컬렉션의 크기가 크면, map, where 같은 메소드의 사용이 성능에 영향을 미칠 수 있습니다. 필요한 경우 효율성을 고려하여 사용합니다.
  • 불변성 유지: mapwhere는 새로운 컬렉션을 반환하므로, 기존 컬렉션의 불변성을 유지할 수 있습니다. 이는 상태 관리에 유리합니다.

관련 자료

  • List.map: 리스트의 각 요소에 대해 변환을 수행합니다.
  • List.where: 리스트의 각 요소에 대해 필터링을 수행합니다.
  • List.forEach: 리스트의 각 요소에 대해 작업을 수행합니다.
profile
flutter 개발자(진)

0개의 댓글