[swift] 타입 캐스팅 및 타입 확인
Swift 언어는 강력한 타입 시스템을 가지고 있으며, 이를 통해 변수 및 상수의 타입을 다른 타입으로 변환하거나 해당 객체의 타입을 확인할 수 있습니다. 이러한 프로세스는 타입 캐스팅과 타입 확인이라고 합니다.
타입 캐스팅
타입 캐스팅은 인스턴스의 타입을 다른 타입으로 캐스팅하는 프로세스를 말합니다. Swift에서는 다음과 같은 두 가지 방법으로 타입 캐스팅을 수행할 수 있습니다.
1. 업 캐스팅
업 캐스팅은 하위 클래스의 인스턴스를 상위 클래스의 타입으로 변환하는 것을 말합니다. 이는 하위 클래스의 특성을 모두 가지면서도 상위 클래스의 인스턴스로 사용될 수 있습니다.
class Animal {
func makeSound() {
print("Some generic sound")
}
}
class Dog: Animal {
override func makeSound() {
print("Bark")
}
}
let myAnimal: Animal = Dog()
2. 다운 캐스팅
다운 캐스팅은 상위 클래스의 인스턴스를 하위 클래스의 타입으로 변환하는 것을 말합니다. 이는 다운캐스팅하려는 인스턴스가 특정 클래스나 프로토콜에 적합한지 확인 후에 사용해야 합니다.
if let myDog = myAnimal as? Dog {
myDog.makeSound()
}
타입 확인
타입 확인은 특정 인스턴스의 실제 클래스를 확인하는 과정을 의미합니다. Swift에서는 is
키워드를 사용하여 타입 확인을 수행할 수 있습니다.
if myAnimal is Dog {
print("myAnimal is a Dog")
} else {
print("myAnimal is not a Dog")
}
타입 캐스팅과 타입 확인을 통해 Swift에서 안전하게 타입을 변환하고 확인할 수 있습니다. 이를 통해 코드의 안전성을 보장하고 리소스를 효율적으로 활용할 수 있습니다.
이상으로 Swift에서의 타입 캐스팅과 타입 확인에 대해 알아보았습니다.
참고 자료: Swift 공식 문서