개요
이 가이드 에서는 Rust 운전자 에서 Result 및 Option 열거형으로 작업하는 방법을 학습 수 있습니다.
Rust는 애플리케이션 코드에 대한 보호 장치로 Result 및 Option 열거형을 제공합니다. Rust 드라이버가 제공하는 많은 메서드는 이 두 가지 유형 중 하나로 래핑된 값을 반환합니다.
결과 열거형
Result 열거형은 다음과 같은 변형을 반환할 수 있습니다.
Ok(T): 연산 결과의 값을 래핑합니다.Err(E): 작업이 실패하면 오류 값을 래핑합니다.
예를 들어, insert_one() 메서드는 Result 유형을 반환하여 성공적인 응답이나 오류를 래핑합니다.
insert_one() 의 래핑되지 않은 결과에 액세스 하려면 ? 연산자 사용합니다. 작업이 성공적인 하면 메서드는 Result 열거형 의 Ok(InsertOneResult) 변형을 반환합니다. 이 경우 ? 연산자 InsertOneResult 값의 래핑을 해제하여 insert_one_result 변수에 할당합니다. 작업이 실패하면 메서드는 Err(E) 열거형 변형을 반환하고 ? 연산자 래핑을 풀고 오류 값을 반환합니다.
다음 코드는 삽입 작업 결과를 처리하는 동안 ? 연산자 사용하는 구문을 보여 줍니다.
let insert_one_result = my_coll.insert_one(doc).await?;
또는 InsertOneResult 의 래핑되지 않은 값을 처리하는 조건을 만들 수 있습니다. 다음 코드는 match 키워드를 사용하여 insert_one() 결과를 처리합니다.
let insert_one_result = my_coll.insert_one(doc).await; match insert_one_result { Ok(val) => { println!("Document inserted with ID: {}", val.inserted_id); }, Err(err) => { println!("Operation not successful"); } }
옵션 열거형
Option 열거형은 다음과 같은 변형을 반환할 수 있습니다.
None: 작업에서 반환된 빈 값을 나타냅니다.Some(T): 비어 있지 않은 반환 값을 래핑합니다.
일부 Rust 드라이버 메서드는 read_concern() 메서드와 같은 Option 유형을 반환합니다. 이 메서드는 읽기 고려 (read concern)가 없는 경우 빈 값을 래핑하거나 ReadConcern 값을 래핑하는 Option 을 반환합니다.
read_concern() 의 결과에 액세스하려면 앞의 예에 표시된 것과 동일한 match 구문을 사용하여 None 및 Some(T) 변형을 처리하면 됩니다. 또는 if let 구문을 사용하여 Some(T) 변형만 처리할 수 있습니다. 다음 코드는 비어 있지 않은 read_concern() 반환 값이 있는 경우 래핑을 해제하고 출력합니다.
if let Some(rc) = my_coll.read_concern() { println!("Read concern: {:?}", rc); }
추가 리소스
Result 및 Option 열거형에 대한 자세한 내용은 Rust 언어 문서에서 다음 리소스를 참조하세요.