본문 바로가기
프로그래밍/Spring

7. Swift Any, AnyObject & nil

by Mr-후 2019. 2. 14.
반응형

7. Swift Any, AnyObject & nil


스위프트에서 Any는 모든 데이터 타입을 사용할 수 있다. 변수 또는 상수의 데이터 타입이 Any로 지정되어 있다면 그 변수 또는 상수에는 어떤 종류의 데이터 타입이든지 상관없이 할당할 수 있다. (그런데 꺼내 쓸데 좀 불편할 수 있음)

AnyObject는 Any보다는 조금더 한정된 의미로 클래스의 인스턴스만 할당 할 수 있다. 

var allVar: Any = "string"

allVar = 500

allVar = 100.00


 책에서도 말한다. 

두 데이터 타입 모두 될 수 있으면 사용하지 말라고.. 타입에 엄격한 스위프트의 특성상 Any, AnyObject로 선언된 변수의 값을 가져다 쓰려면 매번 타입 확인 및 변환을 해줘야하는 불편함이 있고 예기치 못한 오류의 위험이 증가되기 때문이다. 따라서 타입은 명시를 하는 것이 좋다.! 


nil은 특정 타입이 아니라 '없음'을 나타내는 스위프트 키워드,( Objective-C 에서도 사용된다) 변수 또는 상수에 값이 들어있지 않고 비어있음을 나타내는 데 사용한다. nil 상태에서 해당 변수 또는 상수에 접근하면 잘못된 메모리 접근으로 런타임 오류가 발생한다. 

Never라는 타입은 특정 함수의 반환 타입으로 사용될 수 있다.  

반응형