[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에서 AnyAnyObject로 선언된 값을 다른 타입으로 내부 저장된 값의 실제 타입으로 다시 변환할 수 있습니다. 이러한 기능을 타입 캐스팅(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의 차이점

참고 자료