[swift] Swift에서 함수의 타입 확인

Swift는 정적 타입 언어로, 컴파일러가 변수와 함수의 타입을 추론하여 타입 안정성을 보장합니다. 때로는 함수의 타입을 확인하고 작업에 맞게 조작해야 할 수도 있습니다. 이 글에서는 Swift에서 함수의 타입을 확인하는 방법을 알아보겠습니다.

함수의 타입 선언

먼저, Swift에서 함수의 타입을 선언하는 방법을 알아봅시다. 다음은 매개변수로 정수를 받아 정수를 반환하는 함수의 타입을 선언하는 예시입니다.

func addNumbers(_ a: Int, _ b: Int) -> Int {
    return a + b
}

위의 함수의 타입을 (Int, Int) -> Int로 표현할 수 있습니다. 간단하게 설명하자면, 이 타입은 “두 개의 Int 매개변수를 받아 Int를 반환하는 함수”를 나타냅니다.

함수 타입 확인하기

Swift에서 함수의 타입을 확인하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.

let functionType = type(of: addNumbers)
print(functionType)

위의 코드에서 type(of: addNumbers)를 사용하여 addNumbers 함수의 타입을 얻을 수 있습니다. 이를 functionType 변수에 할당하고 출력해보면 함수의 타입이 출력됩니다.

클로저의 타입 확인하기

클로저(closure)도 함수와 마찬가지로 타입을 가지고 있습니다. 다음은 간단한 클로저 타입 확인 예시입니다.

let multiplyClosure: (Int, Int) -> Int = { a, b in
    return a * b
}

print(type(of: multiplyClosure))

multiplyClosure 클로저의 타입은 (Int, Int) -> Int로 정의되어 있습니다. 위의 코드에서 마찬가지로 type(of: multiplyClosure)을 사용하여 타입을 확인하고 출력할 수 있습니다.

결론

Swift에서 함수와 클로저의 타입은 타입이름 뒤에 ->를 사용하여 반환 타입을 명시하면 됩니다. 함수와 클로저의 타입을 확인하고 작업에 맞게 조작하는 데에는 type(of:) 함수를 사용할 수 있습니다. 정적 타입 언어인 Swift의 강력한 타입 추론 기능을 활용하여 원하는 작업을 수행할 수 있습니다.

더 자세한 정보는 Swift 공식 문서를 참조해주세요.