Swift

[스위프트 기초] 4. Any, AnyObject, nil

microsaurs 2022. 5. 21. 17:34

 

1. Any 

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

데이터 타입 위치에 들어갈 수 있음

모든 타입을 수용할 수 있다는 의미

 

*

var someAny: Any = 100

someAny = "어떤 타입도 수용 가능합니다"

someAny = 123.12

 

//오류 발생

let someDouble: Double = someAny 

=> Any 타입인 자료를 Double 타입인 자료에 넣을 수 없음 (명시적 타입 변환을 해주어야 함.)

 

2.AnyObject

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

클래스 인스턴스만 넣을 수 있음

 

*

class SomeClass {}

 

var someAnyObject: AnyObject = SomeClass()

//오류 발생

someAnyObject = 123.12 

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

 

3.nil

- 없음을 지칭하는 키워드

(≒ null, NULL, Null)

 

*

var someAny:Any = 100

var someAnyObject: AnyObject = SomeClasee()

 

//오류 발생

someAny = nil 

=> Any에 어떤 타입이라도 들어갈 수 있지만 빈 값은 들어올 수 없음!

someAnyObject = nil

=> 마찬가지로 빈 값은 들어올 수 없음!