[swift] guard 문을 사용하여 타입 캐스팅을 할 수 있나요?

예를 들어, 다음은 guard 문을 사용하여 String 타입으로의 캐스팅을 수행하는 예제입니다.

func processObject(_ object: Any) {
    guard let str = object as? String else {
        print("The object is not a String")
        return
    }
    // 여기서 'str'은 안전하게 캐스팅된 문자열입니다.
    print("The string is: \(str)")
}

위의 예제에서, guard let 구문은 object를 String으로 캐스팅하고, 그 결과를 str 상수에 할당합니다. 캐스팅이 성공하지 않으면 else 블록이 실행되어 “The object is not a String”을 출력하고 함수가 종료됩니다.

guard let 구문은 옵셔널 바인딩과 타입 캐스팅을 결합하여 안전하게 값을 추출하고 사용할 수 있도록 도와줍니다.

참고 자료: Swift 공식 문서 - Guard Statements