Swift/기초 문법

Any, AnyObject, nil

수줌이 2021. 2. 9. 16:04

1. Any

  • Swift의 모든 타입을 지칭하는 키워드

var someAny: Any = 100
someAny = "어떤 타입도 수용 가능합니다"
someAny = 123.12

// let someDouble: Double = someAny
// 컴파일 오류발생
// Any 타입에 Double 자료를 넣어두었더라도, Any는 Double 타입이 아니기 때문에 할당할 수 없습니다. 
// 명시적으로 타입을 변환해 주어야 합니다.

 

2. AnyObject

  • 모든 클래스 타입을 지칭하는 프로토콜

class SomeClass {}

var someAnyObject: AnyObject = SomeClass()

// someAnyObject = 123.12 
// 컴파일 오류발생
// 클래스의 인스턴스가 아닌 Double형이 들어가려고 해서

AnyObject는 클래스의 인스턴스만 수용 가능하기 때문에 클래스의 인스턴스가 아니면 할당할 수 없습니다 !! 

 

3. nil

  • 없음을 의미하는 키워드

  • 다른 언어의 NULL, Null, null 등과 유사한 표현입니다.

var someAny: Any = 100
var someAnyObject: AnyObject = SomeClass()

someAny = nil 
// 컴파일 오류발생
// Any는 모든 데이터 타입을 넣을 수 있지만 '없음'을 의미하는 nil은 올 수 없습니다.

someAnyObject = nil   
// 컴파일 오류발생

 

이 글은 Boostcourse에서 배운 내용을 정리하여 작성하였습니다.