[swift] Swift에서 as? 키워드를 사용한 타입 변환과 동시에 타입 확인

Swift에서는 타입 변환을 위해 as 키워드를 사용할 수 있습니다. 이 as 키워드를 사용하면서 동시에 타입을 확인할 수 있는 방법이 있는데, 이를 위해 as? 키워드를 사용합니다.

as? 키워드란?

as? 키워드는 옵셔널 타입을 반환합니다. 이를 사용하여 특정 타입으로의 변환을 시도하고, 성공하면 변환된 값을 반환하며, 실패하면 nil을 반환합니다.

예를 들어, 다음과 같이 Any 타입의 값을 String 타입으로 변환하고 싶을 때 사용 가능합니다.

let anyValue: Any = "Hello, world!"

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

위의 코드에서 if let 구문을 사용하여 as? 키워드를 통해 Any 타입을 String 타입으로 변환하고, 성공하면 stringValue에 변환된 값이 할당됩니다. 만약 변환이 실패하면 else 구문이 실행되어 “The value is not a string”이 출력됩니다.

다른 타입 변환과 함께 사용하기

as? 키워드는 다른 타입 변환과 함께 사용할 수도 있습니다. 예를 들어, 다음과 같이 as? 키워드를 이용하여 String 타입을 Int 타입으로 변환할 수 있습니다.

let stringValue = "42"

if let intValue = Int(stringValue) {
    print("The value is an integer: \(intValue)")
} else {
    print("The value is not an integer")
}

위의 코드에서 Int 타입의 이니셜라이저를 사용하여 String 타입을 Int 타입으로 변환하고, 성공하면 intValue에 변환된 값이 할당됩니다. 변환이 실패하면 else 구문이 실행되어 “The value is not an integer”가 출력됩니다.

결론

Swift에서 as? 키워드를 사용하여 타입 변환과 동시에 타입 확인을 할 수 있습니다. 이를 사용하여 옵셔널 타입을 반환하고, 변환에 성공하면 변환된 값이 반환됩니다. 이를 통해 안전하게 타입 변환을 수행할 수 있습니다.

더 자세한 내용은 Swift 문서를 참고하시기 바랍니다.