Swift의 모든 타입을 지칭하는 키워드이다.
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능합니다"
someAny = 123.12
위와 같이 Any 타입에는 어떠한 데이터 타입의 값도 할당할 수 있다.
let someDouble: Double = someAny // 컴파일 오류발생
그러나 someAny
에 Double형 값이 할당 되어 있다고 할 지라도 Any 타입을 다른 데이터 타입으로 지정될 수는 없다.
모든 클래스의 타입을 지칭하는 프로토콜이다.
(클래스와 프로토콜에 대한 설명은 차후에)
class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
someAnyObject = 123.12 // 컴파일 오류발생
AnyObject
는 클래스의 인스턴트만 수용하기 때문에 클래스의 인스턴트가 아닌 Double
타입의 값을 할당하려고 하면 오류가 발생한다.
'없음'을 의미하는 키워드이다.
앞서 Any
가 어떠한 데이터 타입의 값도 할당할 수 있다고 하였다.
var someAny: Any = 100
var someAnyObject: AnyObject = SomeClass()
someAny = nil // 컴파일 오류발생
someAnyObject = nil // 컴파일 오류발생
하지만 nil
은 할당할 수 없다. 어떠한 값도 할당될 수 있지만 빈값은 할당될 수 없다는 뜻이다.
마찬가지로 AnyObject
에도 할당될 수 없다.
나중에 nil
에 대해서 더 자세히 다루겠다.