고차함수 - Higher Order Functions
고차함수는 함수를 인자로 받거나 함수를 반환하는 함수를 말합니다.
스위프트에서는 여러가지 고차함수가 제공되고 있으며, 일반적인 고차함수로는 map, filter, reduce가 있습니다. 컬렉션에 대해 작업을 수행하고 새로운 컬렉션을 반환합니다.
map :
컬렉션의 각 요소에 대해 특정 연산을 수행하고, 그 결과를 새로운 컬렉션으로 반환합니다.
filter :
컬렉션의 요소 중 특정 조건을 만족하는 요소들로 새로운 컬렉션을 생성하여 반환합니다.
reduce :
컬렉션의 요소를 결합하여 단일 값으로 줄여 반환합니다. 주로 누적된 값을 구할 때 사용합니다.
let numbers = [1, 2, 3, 4, 5]
// map: 각 요소를 제곱하여 새로운 배열을 생성
let squaredNumbers = numbers.map { $0 * $0 } // [1, 4, 9, 16, 25]
// filter: 짝수만을 걸러내는 새로운 배열 생성
let evenNumbers = numbers.filter { $0 % 2 == 0 } // [2, 4]
// reduce: 모든 요소를 더하여 합산
let sum = numbers.reduce(0, +) // 15
고차함수는 또한 클로저를 이용해 사용자 정의 연산을 적용할 수 있습니다.
기본적인 map, filter, reduce 내장함수 이외에도
고차 함수의 정의에 맞게 직접 사용할 수도 있습니다.
참고(출처) : 개발하는 정대리, 야곰(Swift5)