[swift] as 연산자와 as? 연산자의 차이점
Swift에서 as
와 as?
는 서로 다른 역할을 수행하는 연산자입니다. 이 두 연산자의 주요 차이점을 살펴보겠습니다.
as 연산자
as
연산자는 다른 형식으로의 명시적인 형식 캐스팅(형변환)을 수행할 때 사용됩니다. 만약 형식 캐스팅이 실패할 경우, 런타임 오류가 발생합니다. 이 연산자를 사용하여 캐스팅한 값은 옵셔널 형식이 아닙니다.
let intValue: Int = 10
let doubleValue = intValue as Double // 컴파일 에러 발생
as? 연산자
as?
연산자는 옵셔널 형식의 형식 캐스팅을 수행합니다. 형식 캐스팅의 결과가 올바르지 않을 수도 있기 때문에, 캐스팅에 실패하더라도 런타임 오류가 발생하지 않습니다. 그 대신, 캐스팅 실패 시 결과는 nil
이 됩니다.
let intValue: Int = 10
let doubleValue = intValue as? Double // 캐스팅 실패 시 doubleValue는 nil
as
와 as?
연산자는 형변환 작업을 수행하면서 발생할 수 있는 오류에 대한 처리 방식에 있어서 주요한 차이가 있습니다. 올바르지 않은 형변환으로 인해 프로그램이 비정상적으로 종료될 가능성이 있는 경우에는 as?
연산자를 사용하는 것이 바람직합니다.
이상으로 Swift에서 as
와 as?
연산자의 차이점에 대해 알아보았습니다.
참고 자료
관련 내용: Swift에서의 타입 캐스팅