Any / AnyObject / nil

2969 단어 swiftswift
  • 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 에 대해서 더 자세히 다루겠다.

좋은 웹페이지 즐겨찾기