[swift] 함수의 인자로 함수를 전달하여 코드를 재사용하는 방법은 무엇인가요?

가장 일반적인 방법은 클로저를 사용하는 것입니다. 클로저는 이름이 없는 함수로, 다른 함수의 인자로 전달하거나 다른 함수에서 반환할 수 있습니다.

아래는 클로저를 사용하여 함수의 인자로 다른 함수를 전달하는 간단한 예제 코드입니다.

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

let addition = { (x: Int, y: Int) -> Int in
    return x + y
}

let multiplication = { (x: Int, y: Int) -> Int in
    return x * y
}

let result1 = performOperation(a: 5, b: 3, operation: addition) // 결과: 8
let result2 = performOperation(a: 5, b: 3, operation: multiplication) // 결과: 15

위의 예제에서, performOperation 함수는 operation 매개변수로 다른 함수를 받아들일 수 있습니다. addition이나 multiplication 클로저가 operation 인자로 전달되어, 각각 덧셈이나 곱셈을 수행하게 됩니다.

이렇게 하면 유연하게 코드를 재사용할 수 있고, 다양한 연산을 하나의 함수로 처리할 수 있습니다.