[swift] Swift에서 타입 상수의 타입 확인하기

Swift는 강력한 타입 시스템을 가지고 있어 타입에 대한 안전성을 보장합니다. 때로는 특정 변수나 상수의 타입을 확인해야 할 때도 있습니다. 이 글에서는 Swift에서 타입 상수의 타입을 확인하는 방법에 대해 알아보겠습니다.

1. 타입 확인 연산자 - is

Swift에서는 is 연산자를 사용하여 변수나 상수의 타입을 확인할 수 있습니다. is 연산자를 사용하면 특정 타입인지 아닌지를 불리언 값으로 반환합니다.

let str: Any = "Hello"

if str is String {
    print("str은 String 타입입니다.")
} else {
    print("str은 String 타입이 아닙니다.")
}

위의 예제에서는 상수 strString 타입인지 확인하고 있습니다. 만약 strString 타입이라면 “str은 String 타입입니다.”라는 메시지를 출력하고, 그렇지 않다면 “str은 String 타입이 아닙니다.”라는 메시지를 출력합니다.

2. 타입 비교 연산자 - as

Swift에서는 as 연산자를 사용하여 타입을 변환할 수도 있습니다. as 연산자는 안전하게 타입을 변환할 때 사용됩니다. 타입 변환이 불가능한 경우 as 연산자는 런타임 오류를 발생시킵니다.

let number: Any = 10

if let intValue = number as? Int {
    print("number는 Int 타입입니다.")
} else {
    print("number는 Int 타입이 아닙니다.")
}

위의 예제에서는 상수 numberInt 타입인지 확인하고 있습니다. as? 키워드를 사용하여 옵셔널 타입으로 타입 변환을 시도하고, 성공할 경우 intValue에 값이 할당됩니다. 타입 변환이 성공한 경우 “number는 Int 타입입니다.”라는 메시지를 출력하고, 그렇지 않은 경우 “number는 Int 타입이 아닙니다.”라는 메시지를 출력합니다.

3. 타입 비교와 타입 변환의 차이

is 연산자와 as 연산자는 비슷해 보이지만, 그 역할은 다릅니다.

예를 들어, is 연산자를 사용하여 타입을 확인하고 결과에 따라 분기 처리하는 것은 as 연산자를 사용하여 타입을 변환한 뒤에 사용하는 것과는 다른 결과를 가져올 수 있습니다.

참고 자료

  1. The Swift Programming Language