본문 바로가기
IT/▒ swift

Swift - Any, AnyObject, nil

by 라떼조아효 2021. 2. 7.
728x90

 

* Any - swift의 모든 타입을 지칭하는 키워드

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

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


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

class SomeClass {}

var someAnyObject: AnyObject = SomeClass()

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

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

 

*객체(Object)는 소프트웨어 세계에 구현할 대상.
이를 구현하기 위한 설계도가 클래스(Class)
이 설계도를 따라 소프트웨어 세계에 구현 된 실체가 인스턴스(Instance)
* 클래스에는 값을 저장하는 변수와 처리를 하는 함수를 넣어 둘 수 있다. 클래스에 제공되는 변수를 "속성(property)",  클래스에서 제공되는 함수를 "메소드(method)"라고 한다.


* nil은 없음을 의미하는 키워드입니다
다른 언어의 NULL, Null, null 등과 유사한 표현입니다.


// someAny는 Any 타입이고, 
// someAnyObject는 AnyObject 타입이기 때문에
// nil을 할당할 수 없습니다
// nil을 다루는 방법은 옵셔널에서 다룹니다.

/// nil - 없음을 의미하는 키워드
// 아래 코드에서 someAny는 Any타입이고, someAnyObject는 AnyObject타입이기때문에 nil을 할당할 수 없다.

 

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

 

출처 - yagom 스위프트 기본 문법 영상(4강), 위키백과, 블로그

'IT > ▒ swift' 카테고리의 다른 글

Swift - 함수 고급  (0) 2021.04.26
Swift - 함수 기본  (0) 2021.02.08
Swift - 컬렉션 타입(Array, Dictionary, set)  (0) 2021.02.08
Swift - 기본 데이터 타입  (0) 2021.02.05
Swift - camel Case, 상수와 변수  (0) 2021.02.05