[swift] 타입캐스팅 패턴의 활용 예시

타입캐스팅은 Swift 프로그래밍에서 중요한 기능 중 하나입니다. 타입캐스팅 패턴은 특정 타입으로의 변환이나 타입의 비교를 쉽게 수행할 수 있도록 도와줍니다. 이번에는 간단한 예시를 통해 Swift에서의 타입캐스팅 패턴의 활용 방법에 대해 알아보겠습니다.

타입캐스팅 패턴의 활용

class Animal {
    var name: String
    init(name: String) {
        self.name = name
    }
}

class Dog: Animal {
    var breed: String
    init(name: String, breed: String) {
        self.breed = breed
        super.init(name: name)
    }
}

class Cat: Animal {
    var color: String
    init(name: String, color: String) {
        self.color = color
        super.init(name: name)
    }
}

let animals = [Dog(name: "Buddy", breed: "Golden Retriever"), Cat(name: "Whiskers", color: "Tabby")]

for animal in animals {
    if let dog = animal as? Dog {
        print("Dog: \(dog.name), Breed: \(dog.breed)")
    } else if let cat = animal as? Cat {
        print("Cat: \(cat.name), Color: \(cat.color)")
    }
}

위 예시는 Animal 클래스를 상속받은 Dog와 Cat 클래스를 정의하고, 이들을 원소로 갖는 배열을 생성합니다. 이후 for-in 루프를 통해 각 동물의 타입을 확인하여 해당하는 정보를 출력합니다.

위 예시를 실행하면, 각각의 동물 객체가 자신에게 맞는 정보를 출력하는 것을 확인할 수 있습니다.

타입캐스팅 패턴을 활용하여 Swift에서는 안전하고 효율적으로 다양한 타입을 처리할 수 있습니다.

이상으로 타입캐스팅 패턴의 활용 예시를 살펴보았습니다.