[swift] Any 데이터 타입과 관련된 Swift의 기능
목차
Any 데이터 타입
Swift에서 Any
는 모든 데이터 타입을 나타내는 타입입니다. 다른 언어에서 사용되는 Object
혹은 var
와 유사한 기능을 가지고 있습니다. Any
는 어떤 데이터 타입의 값이든지 다룰 수 있어서 유연한 프로그래밍을 가능하게 합니다.
var anyValue: Any
anyValue = 10
print(anyValue) // Output: 10
anyValue = "Hello, World!"
print(anyValue) // Output: Hello, World!
AnyObject 데이터 타입
Swift에서 AnyObject
는 클래스 타입을 의미하는 프로토콜입니다. AnyObject
는 클래스의 인스턴스만을 참조할 수 있게 합니다. 다른 언어의 object
와 유사한 기능을 가지며, 클래스 타입에 한정되기 때문에 구조체나 열거형은 AnyObject
의 타입으로 사용할 수 없습니다.
var object: AnyObject
class MyClass {
func myFunction() {
print("My function")
}
}
object = MyClass()
object.myFunction() // Output: My function
Type Casting
Swift에서 Any
나 AnyObject
로 선언된 값을 다른 타입으로 내부 저장된 값의 실제 타입으로 다시 변환할 수 있습니다. 이러한 기능을 타입 캐스팅(Type Casting)이라고 합니다.
var anyValue: Any = 10
if let intValue = anyValue as? Int {
print("This is an Int: \(intValue)") // Output: This is an Int: 10
}
Any와 AnyObject의 차이점
Any
는 모든 데이터 타입을 나타내는 타입이며,AnyObject
는 클래스 타입만을 나타내는 프로토콜입니다.Any
는 구조체나 열거형과 같은 값 타입도 포함할 수 있지만,AnyObject
는 클래스 타입에 한정됩니다.