[swift] Swift에서 제네릭 타입의 타입 확인

Swift는 강력한 제네릭 기능을 제공하여 다양한 타입의 데이터를 처리할 수 있습니다. 그러나 때로는 제네릭 타입의 실제 타입을 확인해야 할 때가 있습니다. 이러한 상황에서는 type(of:) 함수를 사용하여 제네릭 타입의 실제 타입을 확인할 수 있습니다.

func printType<T>(_ value: T) {
    let type = type(of: value)
    print("Type of value: \(type)")
}

let intValue = 10
let stringValue = "Hello"
let doubleValue = 3.14

printType(intValue) // 출력: Type of value: Int
printType(stringValue) // 출력: Type of value: String
printType(doubleValue) // 출력: Type of value: Double

struct Person {
    var name: String
    var age: Int
}

let person = Person(name: "John", age: 30)
printType(person) // 출력: Type of value: Person

위의 예제에서는 printType 함수를 정의하고, 인자로 받은 값의 타입을 출력하는 기능을 가지고 있습니다. 함수에 다양한 타입의 변수를 전달하여 타입을 확인할 수 있습니다.

intValueInt 타입이므로 Type of value: Int가 출력됩니다. stringValueString 타입이므로 Type of value: String이 출력됩니다. doubleValueDouble 타입이므로 Type of value: Double이 출력됩니다.

또한 Person이라는 구조체를 정의하고, person 변수에 해당 구조체의 인스턴스를 할당하여 타입을 확인할 수 있습니다. 출력 결과는 Type of value: Person입니다.

이렇게 Swift에서 제네릭 타입의 타입을 확인하는 방법은 type(of:) 함수를 사용하는 것입니다. 이 기능을 통해 제네릭 타입의 실제 타입을 확인하고, 필요한 작업을 수행할 수 있습니다.


참고 문서: Swift 공식 문서 - Type Casting