[swift] 함수를 타입으로 사용하는 방법은 무엇인가요?

Swift에서 함수를 타입으로 사용하는 방법은 크게 두 가지가 있습니다.

1. 함수 타입 정의하기

함수를 타입으로 사용하기 위해서는 함수의 파라미터와 반환 타입을 정의해주어야 합니다.

// 함수 타입 정의
typealias Operation = (Int, Int) -> Int

// 함수를 저장하는 변수
var add: Operation = { (a, b) in
    return a + b
}

// 함수 사용
let result = add(5, 3) // 결과: 8

위 예제에서 Operation이라는 typealias를 통해 함수 타입을 정의하고, add라는 변수에 함수를 할당하여 사용하였습니다.

2. 함수를 다른 함수의 파라미터로 전달하기

함수를 다른 함수의 파라미터로 전달하여 사용하는 방법도 가능합니다.

// 함수 타입 정의
typealias Operation = (Int, Int) -> Int

// 함수 정의
func calculate(a: Int, b: Int, operation: Operation) -> Int {
    return operation(a, b)
}

// 함수를 파라미터로 전달
let result = calculate(a: 5, b: 3, operation: { (a, b) in
    return a * b
}) // 결과: 15

위 예제에서 calculate 함수는 Operation 타입의 함수를 파라미터로 전달받아 사용하고 있습니다.

이처럼 Swift에서는 함수를 일급 객체로 다루기 때문에 함수를 타입으로 사용하거나 파라미터로 전달하여 유연한 프로그래밍이 가능합니다.

참고 자료