[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 공식 문서