검색결과 리스트
as!에 해당되는 글 1건
- 2015.10.18 [swift2] 타입변환 연산자 (is, as, as?, as!)
글
[swift2] 타입변환 연산자 (is, as, as?, as!)
Swift
2015. 10. 18. 02:52
이 글은 애플 Language Reference 문서를 참고하여 작성하였습니다.
- 4개의 타입캐스팅 연산자가 있습니다.
- is 연산자, as 연산자, as? 연산자, as! 연산자.
is 연산자
- 런타임에 표현식이 특정 타입으로 다운캐스팅 될수 있는지 검사합니다.
- 특정 타입으로 다운캐스팅이 가능하면true, 그렇지 않으면 false를 반환합니다.
as 연산자
- 컴파일 타임에 업캐스팅 또는 브리징과 같이 타입변환이 항상 성공하는 경우에 타입변환을 수행합니다.
- 업캐스팅(upcasting)은 중간변수 없이 표현식을 타입의 수퍼타입 인스턴스처럼 사용할수 있게합니다.
func f(any: Any) { print("Function for Any") }
func f(int: Int) { print("Function for Int") }
let x = 10
f(x)
// "Function for Int" 출력
let y: Any = x
f(y)
// "Function for Any" 출력
f(x as Any)
// "Function for Any" 출력
- 브리징(bridging)은 새 인스턴스를 생서하지 않고도, String과 같은 표준라이브러리 타입 표현식을 NSString과 같은 파운데이션 타입으로 사용할 수 있게합니다.
as? 연산자
- 표현식을 특정타입으로 조건부 타입변환을 수행합니다.
- as? 연산자는 특정 타입의 옵셔널을 반환합니다.
- 타입변환이 성공하면 표현식의 값은 옵셔널 타입으로 랩핑되어 반환됩니다. 실패하면 nil을 반환합니다.
- 특정 타입으로 타입변환이 실패 또는 성공으로 보장되면 컴파일 타임 에러가 발생합니다.
as! 연산자
- 표현식을 특정 타입으로 강제 타입변환을 수행합니다.
- as! 연산자는 옵셔널 타입이 아닌 특정 타입의 값을 반환합니다.
- 타입변환이 실패하면, 런타임 에러가 발생합니다.
- x as! T 는 (x as? T)! 과 동일하게 동작합니다.
'Swift' 카테고리의 다른 글
| [swift2.1] Xcode7.1 Playground 변경사항 (0) | 2015.10.27 |
|---|---|
| [swift2] Functor 와 Monad (0) | 2015.10.25 |
| [swift2] 타입변환 연산자 (is, as, as?, as!) (0) | 2015.10.18 |
| [swift] Swift 코딩환경 Playground (0) | 2015.10.05 |
| [swift2] Swift Guard (0) | 2015.09.11 |
| [swift2] Swift2에서의 문자열(strings) (0) | 2015.09.02 |