[swift] 클로저

개요

클로저는 함수나 메서드, 다른 클로저의 인자값으로 전달되는 “차시 함수”이다.

다른 요소로 전달되는 클로저는 함수나 메서드, 클로저의 반환값으로 사용할 수 있다. 클로저는 변수나 상수에 할당해 저장하거나 전달할 수도 있다.

클로저는 코드 내에서 다른 코드 블록을 전달하거나 참조하기 위한 구문이다. Swift의 클로저는 구문 간결성과 더불어 유연성을 제공하며 상황에 맞게 코드를 전달하거나 코드를 표현하는 간단한 방법을 제공한다.

클로저 문법

일반 함수와 클로저는 비슷한 구문을 가진다. 클로저는 in 키워드를 사용하여 인자 목록과 반환 타입을 식별하는 -> 연산자를 사용한다.

{ (parameters) -> return type in
    statements
}

예를 들어, 정수를 받아 두 배로 만드는 클로저를 작성하면 다음과 같이 작성할 수 있다.

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

위의 doubleClosureInt를 입력받아 Int를 반환하는 클로저를 나타낸다.

클로저 사용

클로저는 함수처럼 사용될 수 있다. 변수나 상수에 할당하고 나중에 호출할 수 있다.

let result = doubleClosure(3) // result = 6

또한 다른 함수의 인자값으로 전달될 수 있다.

func operateOnNumbers(_ a: Int, _ b: Int, operation: (Int, Int) -> Int) -> Int {
    return operation(a, b)
}

let addClosure: (Int, Int) -> Int = { a, b in
    return a + b
}

let result = operateOnNumbers(3, 5, operation: addClosure) // result = 8

요약

클로저는 Swift에서 강력한 기능을 가지고 있으며 함수형 프로그래밍 스타일을 채택할 때 유용하게 사용된다. 클로저를 통해 코드를 간결하게 작성할 수 있고, 코드를 유연하게 전달하고 참조할 수 있다.

더 많은 정보는 Swift 공식 문서에서 확인할 수 있다.