[swift] Swift에서 타입 메서드의 타입 확인하기
Swift는 강력한 정적 타입 언어로서, 변수와 함수의 타입을 컴파일 시간에 결정합니다. 이는 객체지향 프로그래밍에 있어서도 마찬가지입니다. Swift에서는 타입 메서드를 통해 클래스의 타입에 속한 메서드를 정의할 수 있습니다.
하지만 때로는 타입 메서드가 어떤 타입에 속해있는지 확인해야 할 때가 있습니다. 이런 경우 Swift에서 제공하는 타입 체크 연산자를 사용할 수 있습니다.
타입 체크 연산자: is
, as
Swift에서 타입 체크 연산자를 사용하여 특정 타입에 속해있는지 확인할 수 있습니다. 타입 체크 연산자는 두 가지 형태로 사용할 수 있습니다.
- 타입 확인 (
is
): 타입 체크 연산자is
는 특정 인스턴스가 특정 타입에 속해있는지 확인할 때 사용됩니다. - 다운캐스팅 (
as
): 타입 체크 연산자as
는 인스턴스를 특정 타입으로 다운캐스팅할 때 사용됩니다.
class Animal {
}
class Dog: Animal {
}
class Cat: Animal {
}
let dog = Dog()
let cat = Cat()
print(dog is Dog) // true
print(dog is Animal) // true
print(cat is Cat) // true
print(cat is Animal) // true
print(dog is Cat) // false
print(cat is Dog) // false
let animalDog = dog as Animal
let animalCat = cat as Animal
print(animalDog is Dog) // false
print(animalCat is Cat) // false
print(animalDog is Animal) // true
print(animalCat is Animal) // true
위의 예시에서는 Animal
클래스를 상속받는 Dog
와 Cat
클래스를 정의하고 있습니다. dog
와 cat
인스턴스는 각각 Dog
와 Cat
의 타입을 가지고 있지만, Animal
타입에 속한 인스턴스로도 사용될 수 있습니다.
따라서 is
연산자를 통해 dog
와 cat
이 Dog
와 Cat
타입에 속해있는지 확인할 수 있습니다. 또한, as
연산자를 통해 dog
와 cat
을 Animal
타입으로 다운캐스팅할 수도 있습니다.
결론
Swift에서는 타입 메서드의 타입을 확인하기 위해 타입 체크 연산자인 is
와 as
를 사용할 수 있습니다. 이를 활용하여 원하는 타입에 속한 인스턴스를 확인하거나 다운캐스팅할 수 있습니다.