728x90
Any - Swift의 모든 타입을 지칭하는 키워드이다.
AnyObject - 모든 클래스 타입을 지칭하는 프로토콜이다.
nil - 없음을 의미하는 키워드이다. (NULL, Null 등과 같음)
Any
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능합니다."
someAny = 123.12
// let someDouble: Double = someAny
Any는 모든 타입을 수용하는 키워드이다. 그러니까 어떤 타입을 가져다 할당해도 에러가 나지 않고 잘 할당 된다라는 소이다.
하지만 주석 처리와 같이 Any 형이 아닌 다른 타입에 복사, 전달 하면 에러가 발생한다.
AnyObject
class SomeClass {}
var someAnyObject: AnyObject = someClass()
//someAnyObject = 123.12
AnyObject는 모든 클래스 타입을 지칭하는 프로토콜이다.
위 프로토콜을 설정해놓으면, 선언된 모든 클래스를 사용하고 할당 받을 수 있다.
그러나 AnyObject로 만든 클래스에 클래스 인스턴스가 아닌 Double 타입을 넣으려고 하면 에러가 발생한다.
nil
//someAny = nil
//someAnyObject = nil
nil은 없음을 의미하는 키워드이다.
위에 생성된 변수와 클래스에 nil을 할당 할 수 없다.
nil은 방금 말했듯이 없음을 의미하기 때문에 어딘가에 추가 하고 그런게 아니다.
아마도 nil의 사용은 C++에서 NULL을 이용하여 배열을 초기화 하듯 그러한 곳에서 사용할 것으로 추측된다.
728x90
'etc > Swift' 카테고리의 다른 글
함수 기본 (0) | 2021.05.13 |
---|---|
컬렉션 타입 (0) | 2021.05.11 |
Swift의 기본 데이터 타입 (0) | 2021.05.04 |
상수와 변수(Swift) (0) | 2021.05.03 |
명명법 / 콘솔로그 / 문자열 보간법 (0) | 2021.05.01 |
댓글