[swift] 맵 함수와 클로저(Closure)의 관계

맵(map) 함수는 스위프트(Swift)에서 제공하는 고차 함수(Higher-order function) 중 하나로, 컬렉션 내의 각 요소에 대해 특정 연산을 수행하여 변환된 결과값을 새로운 컬렉션으로 반환하는 역할을 합니다.

클로저(Closure)는 스위프트에서 일급 객체로 취급되는 익명 함수입니다. 클로저는 코드 블록 형태로 작성되어 있으며, 매개변수와 반환 타입이 있을 수 있습니다. 클로저를 사용하여 맵 함수에 적용할 변환 연산을 정의할 수 있습니다.

예를 들어, 정수 배열의 각 요소에 2를 곱하여 새로운 배열을 생성하는 경우를 살펴보겠습니다.

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

위의 예제에서는 map() 함수를 사용하여 numbers 배열의 각 요소를 2배로 곱하고, 그 결과값을 multipliedNumbers 배열로 반환하였습니다. 이 때, 클로저를 사용하여 변환 연산을 정의하였습니다. 클로저는 $0을 통해 클로저의 첫 번째 매개변수(배열의 각 요소)를 참조합니다.

맵 함수와 클로저를 함께 사용하면, 간결하고 효율적인 코드 작성이 가능합니다. 또한, 매번 for 문을 사용하여 변환 연산을 수행해야 하는 번거로움을 줄여줍니다.

참고문헌: