카테고리 없음
[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
차이점 요약
변환 여부:
map
: 변환된 새로운 컬렉션을 반환forEach
: 결과를 반환하지 않음
반환되는 데이터:
map
: 새로운 컬렉션forEach
: 없음 (Void
반환)
사용 목적:
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
는 부수 효과를 위해 각 요소에 대해 작업을 수행할 때 사용합니다.
```