Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

결과 및 옵션 열거형

이 가이드 에서는 Rust 운전자 에서 ResultOption 열거형으로 작업하는 방법을 학습 수 있습니다.

Rust는 애플리케이션 코드에 대한 보호 장치로 ResultOption 열거형을 제공합니다. 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 구문을 사용하여 NoneSome(T) 변형을 처리하면 됩니다. 또는 if let 구문을 사용하여 Some(T) 변형만 처리할 수 있습니다. 다음 코드는 비어 있지 않은 read_concern() 반환 값이 있는 경우 래핑을 해제하고 출력합니다.

if let Some(rc) = my_coll.read_concern() {
println!("Read concern: {:?}", rc);
}

ResultOption 열거형에 대한 자세한 내용은 Rust 언어 문서에서 다음 리소스를 참조하세요.

  • 결과

  • 옵션

  • ? 연산자

  • if let을 사용한 간결한 제어 흐름

돌아가기

경계 및 경계 오류

이 페이지의 내용