[swift] Swift에서 타입 병합 연산자의 타입 확인하기

Swift는 강력한 타입 시스템을 가지고 있어, 변수나 상수의 타입을 명확하게 지정할 수 있습니다. 이러한 타입 시스템은 코드의 안정성과 가독성을 높여주는데 도움을 줍니다. Swift에서는 타입이 서로 일치하지 않는 경우에는 오류가 발생하는데, 이때 타입 병합 연산자인 as?를 사용하여 타입을 확인할 수 있습니다.

타입 병합 연산자 as?는 형식 캐스팅을 시도하고, 그 결과를 옵셔널 값으로 반환하는 역할을 합니다. 만약 형식 캐스팅이 성공한 경우에는 원래 값을 타입으로 변환하여 옵셔널 값으로 반환하고, 실패한 경우에는 nil을 반환합니다.

let value: Any = "Hello, Swift"

if let stringValue = value as? String {
    print("The value is a string: \(stringValue)")
} else {
    print("The value is not a string")
}

위의 코드에서는 value라는 변수가 Any 타입으로 선언되어 있습니다. 이 변수가 실제로는 String 타입인지 확인하기 위해 타입 병합 연산자 as?를 사용하고 있습니다.

as? 연산자를 사용하여 형식 캐스팅을 시도한 결과를 if let 구문을 통해 옵셔널 바인딩하여 실제로 String 타입인 경우에는 해당 값을 출력하고, 그렇지 않은 경우에는 “The value is not a string”을 출력하게 됩니다.

이를 실행하면 “The value is a string: Hello, Swift”가 출력됩니다.

위의 예시는 Any 타입을 String으로 변환하는 경우였지만, Swift에서는 as?를 사용하여 더 다양한 타입 간의 형식 캐스팅을 시도할 수 있습니다.

이러한 타입 확인을 통해 코드의 안정성을 높이고, 타입에 따라 다른 처리를 할 수 있게 됩니다.

참고: Swift 공식 문서 - Type Casting