[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는 클래스 타입에 한정됩니다.