본문 바로가기
프로그래밍

스위프트 타입 체크

by hansoo.labs 한수댁 2018. 1. 10.

Check if instance is struct or class

클래스인지 구조체인지 확인


class TClass {}
struct TStruct {}

func who(_ any: Any) -> String {
    if Mirror(reflecting: any).displayStyle == .class {
        return "Class"
    } else {
        return "Struct"
    }
}

print(who("Hello")) // Struct
print(who(TClass())) // Class
print(who(TStruct())) // Struct
print(who(1)) // Struct

Check if generic type is which class

제네릭 타입이 특정 클래스 인지 확인



protocol Some {}
class SomeClass: Some {}
class AClass: Some {}
func test(_ t: T) -> String {
    if T.self == SomeClass.self {
        return "Some Class"
    } else {
        return "Another Class"
    }
}

print(test(SomeClass())) // Some Class
print(test(AClass())) // Another Class

댓글0