Any / AnyObject / nil
- Any - Swift의 모든 타입을 지칭하는 키워드
- AnyObject - 모든 클래스 타입을 지칭하는 프로토콜
- nil - '없음'을 의미하는 키워드
Any
Swift의 모든 타입을 지칭하는 키워드이다.
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능합니다"
someAny = 123.12
위와 같이 Any 타입에는 어떠한 데이터 타입의 값도 할당할 수 있다.
let someDouble: Double = someAny // 컴파일 오류발생
그러나 someAny
에 Double형 값이 할당 되어 있다고 할 지라도 Any 타입을 다른 데이터 타입으로 지정될 수는 없다.
AnyObject
모든 클래스의 타입을 지칭하는 프로토콜이다.
(클래스와 프로토콜에 대한 설명은 차후에)
class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
someAnyObject = 123.12 // 컴파일 오류발생
AnyObject
는 클래스의 인스턴트만 수용하기 때문에 클래스의 인스턴트가 아닌 Double
타입의 값을 할당하려고 하면 오류가 발생한다.
nil
'없음'을 의미하는 키워드이다.
앞서 Any
가 어떠한 데이터 타입의 값도 할당할 수 있다고 하였다.
var someAny: Any = 100
var someAnyObject: AnyObject = SomeClass()
someAny = nil // 컴파일 오류발생
someAnyObject = nil // 컴파일 오류발생
하지만 nil
은 할당할 수 없다. 어떠한 값도 할당될 수 있지만 빈값은 할당될 수 없다는 뜻이다.
마찬가지로 AnyObject
에도 할당될 수 없다.
나중에 nil
에 대해서 더 자세히 다루겠다.
Author And Source
이 문제에 관하여(Any / AnyObject / nil), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jhon3242/Any-AnyObject-nil저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)