카테고리 없음

[swift]map, forEach 차이

dev.jake 2024. 7. 12. 09:16
# `map`과 `forEach` 차이

`map`과 `forEach`는 둘 다 컬렉션을 다루는 메서드지만, 목적과 동작이 다릅니다.

## `map`

- **목적**: 컬렉션의 각 요소를 변환하거나 가공하여 새로운 컬렉션을 만듭니다.
- **리턴 값**: 변환된 요소들로 이루어진 **새로운 컬렉션**을 반환합니다.
- **사용 예시**:

```swift
let numbers = [1, 2, 3, 4, 5]
let doubled = numbers.map { $0 * 2 }
print(doubled)  // [2, 4, 6, 8, 10]

forEach

  • 목적: 컬렉션의 각 요소에 대해 어떤 동작을 수행하지만, 결과를 반환하지 않습니다.
  • 리턴 값: 없음 (Void 반환)
  • 사용 예시:
let numbers = [1, 2, 3, 4, 5]
numbers.forEach { print($0 * 2) }
// 출력:
// 2
// 4
// 6
// 8
// 10

차이점 요약

  1. 변환 여부:

    • map: 변환된 새로운 컬렉션을 반환
    • forEach: 결과를 반환하지 않음
  2. 반환되는 데이터:

    • map: 새로운 컬렉션
    • forEach: 없음 (Void 반환)
  3. 사용 목적:

    • map: 변환 작업이 필요할 때 사용
    • forEach: 부수 효과 (출력, 데이터베이스 저장 등)만 필요할 때 사용

비교 예시

let numbers = [1, 2, 3, 4, 5]

// `map`으로 변환
let squared = numbers.map { $0 * $0 }
print(squared)  // [1, 4, 9, 16, 25]

// `forEach`로 출력
numbers.forEach { print($0 * $0) }
// 출력:
// 1
// 4
// 9
// 16
// 25

요약: map은 변환을 목적으로 새로운 컬렉션을 반환하고, forEach는 부수 효과를 위해 각 요소에 대해 작업을 수행할 때 사용합니다.
```