iOS/iOS
as, as?, as!의 차이
황민우
2022. 2. 24. 16:30
타입 캐스팅 정의
- 타입 캐스팅은 인스턴스의 타입을 확인할 때 사용합니다.
- 해당 인스턴스를 수퍼클래스(상위클래스)나 하위 클래스로 처리(취급)하는 방법입니다.
- 상속 관계가 있는 클래스끼리만 타입 캐스팅이 가능합니다.
- 타입 캐스팅을 사용해 타입이 프로토콜에 적합한지도 알 수 있습니다.
타입 캐스팅
2022.01.26 - [iOS/Swift 문법 심화 학습] - 타입 캐스팅
타입캐스팅
정의 타입 캐스팅은 인스턴스의 타입을 확인 하는 "is"연산자와 해당 인스턴스를 수퍼 클래스 또는 하위 클래스로 취급하는 "as" 연산자가 있으며, "as" 연산자는 사용 목적에 따라 업 캐스팅과 다
seagreen83.tistory.com
타입 캐스팅 연산자 [ as, as?, as! 차이점 ]
is | - 타입을 체크하는 연산자로, 런타임 시점에 실제 체크가 이루어집니다. - 표현식이 타입과 동일하거나 서브클래스인 경우 True값을 반환하고, 그 외에 경우엔 False값을 반환합니다. |
as | - 업 캐스팅에 사용하며, 컴파일 시점에 캐스팅 가능 여부를 결정합니다. - 업 캐스팅은 항상 성공합니다. |
as? | - 다운 캐스팅에 사용하며, 런타임에 캐스팅됩니다. - 다운 캐스팅에 실패할 경우 nil을 리턴합니다. - 캐스팅에 성공할것이라는 확신이 없을 때, 해당 키워드를 사용할 수 있습니다. |
as! | - 다운 캐스팅에 사용하며, 런타임에 강제 캐스팅합니다. - 다운 캐스팅에 실패할 경우 에러가 발생합니다. - 반드시 캐스팅에 성공할 것이라는 확신이 있을 때, 해당 키워드를 사용할 수 있습니다. |