nil
nil : '없음'을 의미하는 키워드. 다른 프로그래밍 언어의 null값과 유사한 의미
Any
Any : Swift의 모든 타입을 지칭하는 키워드
모든 타입을 지칭하기 때문에 모든 데이터 타입의 종류(7가지)가 담길 수 있다. 하지만, nil값은 담을 수 없는데, 그 이유는 Any는 모든 값을 담을 수 있지만, 없는 값 nil은 담을 수 없다.
someDouble의 데이터 타입을 Double로 선언해주고 Any 타입인 someAny 값을 할당하려고 하니 에러가 발생한다.
Swift에서는 값 끼리의 상호 교환이 안되기 때문이다.
사용하지 않는 편이 낫다고 한다..
AnyObject
AnyObject : 모든 클래스 타입을 지칭하는 프로토콜 (클래스와 프로토콜은 나중에 자세하게 다룬다고 한다.)
AnyObject는 클래스의 인스턴스만 수용 가능하기 때문에 클래스의 인스턴스가 아니면 할당할 수 없다고 한다.
클래스와 프로토콜은 나중에 다시 다룬다고 하니 그렇구나~ 하고 넘어가자.
Any vs AnyObject
공통점 : 모든 타입을 담을 수 있는 데이터타입
차이점 : Any는 변수 또는 상수를 마음껏 담을 때 사용하는 타입이라면, AnyObject는 클래스의 인스턴스만 할당할 수 있다.
생각해보기
프로그래밍에서 의미하는 0은 int의 자료형이다. 이 말은 0이 0 자체의 값을 가지고 있기 때문에 '없음'을 나타낼 수 없다.
그래서 '없음'을 나타내기 위해 nil을 만들어냈지 않을까?
'iOS > Swift' 카테고리의 다른 글
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 07. 함수 기본 (0) | 2021.07.18 |
---|---|
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 06. 컬렉션 타입(Array, Dictionary, Set) (💎생각해보기) (0) | 2021.07.15 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 04. 기본 데이터 타입 (0) | 2021.07.13 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 03.상수와 변수 (0) | 2021.07.13 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 02. 명명법 / 콘솔로그 / 문자열 보간법 (0) | 2021.07.13 |