2021년 11월 4일에 공부한 내용입니다.
Any, AnyObject, nil은 기본 데이터 타입은 아니다.
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능합니다"
someAny = 123.12
let someDouble: Double = someAny // 불가능. 컴파일 에러
class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
// AnyObject는 클래스의 인스턴스만 수용 가능하기 때문에 클래스의 인스턴스가 아니면 할당할 수 없습니다.
someAnyObject = 123.12 // 컴파일 오류발생
사실 Swift의 기본 데이터 타입들은 구조체로 되어있다.
// someAny는 Any 타입이고, someAnyObject는 AnyObject 타입이기 때문에 nil을 할당할 수 없습니다.
var someAny: Any = 100
var someAnyObject: AnyObject = SomeClass()
// nil을 다루는 방법은 옵셔널 파트에서 다룹니다.
someAny = nil // 컴파일 오류발생
someAnyObject = nil // 컴파일 오류발생