[swift] 클로저를 이용한 하이어오더 함수 작성하기

하이어오더 함수는 함수를 매개변수로 받거나 함수를 반환하는 함수를 말합니다. Swift에서는 클로저를 이용하여 하이어오더 함수를 작성할 수 있습니다. 클로저는 이름이 없는 함수로, 함수의 기능을 갖고 있는 코드 블럭입니다.

클로저 정의하기

클로저는 다음과 같이 정의할 수 있습니다.

let closure: () -> Void = {
    // 클로저의 코드
}

위의 예시에서는 파라미터가 없고, 반환 값도 없는 클로저를 정의하고 있습니다.

하이어오더 함수 작성하기

이제 클로저를 이용하여 하이어오더 함수를 작성해보겠습니다. 예를 들어, 두 개의 정수를 더하는 함수를 하이어오더 함수 형태로 작성해보겠습니다.

func calculate(_ 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 = calculate(5, 3, operation: addClosure)
print(result) // Output: 8

위의 예시에서는 calculate 함수는 세 개의 파라미터를 가지고 있습니다. 첫 번째와 두 번째 파라미터는 덧셈 연산을 수행할 두 개의 정수입니다. 세 번째 파라미터는 클로저로, 두 개의 정수를 받아 덧셈을 수행하여 결과 값을 반환합니다.

addClosure 클로저는 두 개의 정수를 더하여 결과 값을 반환하는 기능을 갖고 있습니다. 이 클로저를 calculate 함수의 세 번째 파라미터로 전달하여 실행하면 결과 값으로 8을 반환합니다.

이처럼 클로저를 이용하여 하이어오더 함수를 작성하면 코드의 재사용성을 높일 수 있습니다.

마무리

위의 예시를 통해 클로저를 이용한 하이어오더 함수 작성 방법을 알아보았습니다. 클로저를 이용하면 함수를 매개변수로 전달하거나 반환하는 유연한 코드를 작성할 수 있습니다. 클로저의 자세한 사용법에 대해서는 Swift 공식 문서를 참고하시기 바랍니다.

참고 문서