[swift] 클로저 문법

클로저는 코드 블록을 나타내는 일급 객체로 사용할 수 있는 모습의 독립적인 함수입니다. Swift에서 클로저를 정의하고 사용하는 다양한 방법이 있습니다.

기본 문법

클로저는 중괄호로 둘러싸여 있으며, in 키워드를 사용하여 매개변수와 리턴 타입에서 본문을 분리합니다.

{ (매개변수) -> 반환타입 in
    // 클로저의 본문
}

예를 들어, 정수를 입력받아 2배로 만들어주는 간단한 클로저는 다음과 같이 작성할 수 있습니다.

let doubler: (Int) -> Int = { number in
    return number * 2
}

축약 문법

클로저의 본문이 한 줄로 표현될 수 있는 경우, 축약된 문법을 사용할 수 있습니다.

let doubler: (Int) -> Int = { $0 * 2 }

클로저를 함수의 매개변수로 사용하기

클로저는 다른 함수의 매개변수로 전달될 수 있습니다. 예를 들어, map 함수를 사용하여 배열의 각 요소에 클로저를 적용할 수 있습니다.

let numbers = [1, 2, 3, 4, 5]
let doubledNumbers = numbers.map { $0 * 2 }
// doubledNumbers는 [2, 4, 6, 8, 10] 입니다.

클로저를 변수에 할당하기

변수에 클로저를 할당할 수도 있습니다.

let tripler: (Int) -> Int = { $0 * 3 }
let tripledNumber = tripler(5) // 결과는 15입니다.

Swift에서 클로저를 사용하는 다양한 방법을 통해 코드를 더 간결하고 유연하게 구성할 수 있습니다.

참고 자료: The Swift Programming Language - Closures