IOS/swift 기초 문법

[Swift 기초 문법] 1.3 Any, AnyObject, nil

식빵민 2022. 7. 3. 22:45

1. Any

  • Swift의 모든 타입을 지칭하는 키워드
var metamong: Any = 123
metamong = "Any can be any type"
metamong = 3.141592
var pi: Double = 3.14
//pi = metamong !오류 발생! 'Double' 타입에 'Any' 타입의 값 할당할 수 없음
metamong = pi // 'Any' 타입에 'Double' 타입의 값 할당 가능

2. AnyObject

  • 모든 클래스 타입을 지칭하는 프로토콜
class AClass {}
var someAnyObject: AnyObject = AClass()
// AnyObject는 클래스의 인스턴스만 수용하기 때문에 클래스의 인스턴스가 아니면 할당할 수 없음
// someAnyObject = 123.12 !컴파일 오류 발생! 타입의 표현이 모호함

3. nil

  • '없음'을 의미하는 키워드 (C++ 에서의 NULL)
// pi = nil !오류 발생! 'nil'은 'Double' 타입에 할당할 수 없음
// 기본 타입 모두 nil 할당할 수 없음
// metamong = nil !오류 발생! 'nil'은 'Any' 타입에 할당할 수 없음
// someAnyObject = nil !오류 발생! 'nil'은 'AnyObject' 타입에 할당할 수 없음