[TIL] 고차함수

Eden·2025년 6월 4일

오늘은 대표적인 다섯 가지 고차함수 map, filter, reduce, compactMap, flatMap을 예제와 함께 정리해보겠습니다.

map

컬렉션의 각 요소를 변형하여 새로운 배열을 만듭니다.

let numbers = [1, 2, 3]
let squared = numbers.map { $0 * $0 }
print(squared) // [1, 4, 9]

filter

조건을 만족하는 값들만 필터링합니다.

let numbers = [1, 2, 3, 4, 5]
let evenNumbers = numbers.filter { $0 % 2 == 0 }
print(evenNumbers) // [2, 4]

reduce

배열을 하나의 값으로 축소(accumulate)할 때 사용합니다.

let numbers = [1, 2, 3, 4]
let sum = numbers.reduce(0) { $0 + $1 }
print(sum) // 10

compactMap

Optional 반환값 중 nil을 자동으로 제거하며 변환합니다.

let strings = ["1", "2", "three", "4"]
let numbers = strings.compactMap { Int($0) }
print(numbers) // [1, 2, 4]

flatMap

중첩된 배열을 단일 배열로 펼치기 위해 사용됩니다.

let nested = [[1, 2, 3], [4, 5], [6]]
let flattened = nested.flatMap { $0 }
print(flattened) // [1, 2, 3, 4, 5, 6]

정리

함수 기능
map 요소 변형
filter 조건 필터링
reduce 누적 및 축소
compactMap nil 제거 후 변형
flatMap 중첩 컬렉션 펼치기
profile
iOS Dev

0개의 댓글