[swift] 다중 타입 캐스팅

다중 타입 캐스팅이란?

다중 타입 캐스팅은 하나의 타입이 다른 여러 타입으로 캐스팅될 수 있는 기능을 말합니다. Swift에는 세 가지 다중 타입 캐스팅 연산자가 있습니다.

  1. as? : 조건부 다운캐스팅 연산자로, 캐스팅이 실패할 경우 nil을 반환합니다.
  2. as! : 강제 다운캐스팅 연산자로, 캐스팅이 실패할 경우 런타임 오류가 발생합니다.
  3. is : 특정 타입으로 캐스팅될 수 있는지 여부를 불리언 값으로 반환합니다.

다중 타입 캐스팅 사용 방법

아래는 간단한 예제 코드입니다.

class Animal {}
class Dog: Animal {}
class Cat: Animal {}

let animals: [Animal] = [Dog(), Cat()]

for animal in animals {
    if let dog = animal as? Dog {
        print("This is a dog!")
    } else if let cat = animal as? Cat {
        print("This is a cat!")
    }
}

위 코드에서 as? 연산자를 사용하여 다운캐스팅을 시도하고, 성공하면 해당 타입으로 값을 사용할 수 있습니다.

다중 타입 캐스팅은 코드를 보다 유연하고 동적으로 만들어주는데 도움이 되며, 런타임 시 안전한 값을 캐스팅할 수 있는 강력한 도구입니다.

더 자세한 내용은 Swift 공식 문서를 참고하세요.