[swift] 클래스의 타입 캐스팅(Type Casting) 개념
클래스의 타입 캐스팅은 스위프트에서 중요한 주제 중 하나입니다. 타입 캐스팅은 클래스의 인스턴스를 다른 클래스의 인스턴스 타입으로 캐스팅하는 기능을 말합니다.
타입 캐스팅의 종류
- Upcasting
- Downcasting
Upcasting
업캐스팅은 하위 클래스의 인스턴스를 상위 클래스의 인스턴스 타입으로 캐스팅하는 것을 말합니다.
class Animal {}
class Dog: Animal {}
let animal: Animal = Dog()
Downcasting
다운캐스팅은 상위 클래스의 인스턴스를 하위 클래스의 인스턴스 타입으로 캐스팅하는 것을 말합니다. 다운캐스팅은 두 가지의 형태로 구현됩니다.
- as? : 조건부 다운캐스팅, 실패 시
nil
반환 - as! : 강제 다운캐스팅, 실패 시 런타임 에러 발생
class Animal {}
class Dog: Animal {}
let animal = Dog()
if let dog = animal as? Dog {
// 다운캐스팅에 성공한 경우
} else {
// 다운캐스팅에 실패한 경우
}
타입 캐스팅은 스위프트에서 유용하고 중요한 개념이므로 잘 이해하고 활용할 수 있어야 합니다.