[swift] 다중 타입 캐스팅
다중 타입 캐스팅이란?
다중 타입 캐스팅은 하나의 타입이 다른 여러 타입으로 캐스팅될 수 있는 기능을 말합니다. Swift에는 세 가지 다중 타입 캐스팅 연산자가 있습니다.
as?
: 조건부 다운캐스팅 연산자로, 캐스팅이 실패할 경우 nil을 반환합니다.as!
: 강제 다운캐스팅 연산자로, 캐스팅이 실패할 경우 런타임 오류가 발생합니다.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 공식 문서를 참고하세요.