메소드들
질의
어댑터
as_ref()
&Result<T, E>
to Result<&T, &E>
as_mut()
&mut Result<T, E>
to Result<&mut T, &mut E>
as_deref()
&Result<T, E>
to Result<&T::Target, &E>
as_deref_mut()
&mut Result<T, E>
to Result<&mut T::Target, &E>
담고 있는 값 꺼내놓기
- Ok인 경우 값을 내놓고, Err이면 다음 메소드에 따라 다름
expect(msg: &str) -> T
: 제공되는 메시지와 함께 panic. Debug trait 구현 필요
unwrap() -> T
: 일반 메시지와 함께 panic. Debug trait 구현 필요
unwrap_or(default: T) -> T
: 제공되는 기본값을 반환
unwrap_or_default() -> T
: T의 기본값을 반환(Default trait 구현되어 있어야 함)
unwrap_or_else(f: F) -> T
: 제공되는 함수 실행 결과 반환
- Ok인 경우 panic
expect_err(msg: &str) -> E
: 제공되는 메시지와 함께 panic
unwrap_err() -> E
: 일반 메시지와 함께 panic
변환 : Result -> Option
err() -> Option<E>
: Err(e)는 Some(e)로, Ok(v)는 None으로 변환
ok() -> Option<T>
: Ok(v)는 Some(v)로, Err(e)는 None으로 변환
transpose() -> Option<Result<T, E>>
: Option의 Result의 Option를 Result의 Option으로 변환
Ok(Some(5))
를 Some(Ok(5))
로 변환
변환
map<U, F>(op: F) -> Result<U, E>
Result<T, E>
의 Ok값에 대해서는 제공된 함수를 적용하고 Err값은 그대로 두는 변환
map_err<F, O>(op: O) -> Result<T, F>
Result<T, E>
의 Err값에 대해서는 제공된 함수를 적용하고 Ok값은 그대로 두는 변환
map_or(default: U, f: F)
- Ok(v)에 대해 f(v) 적용하고, Err이면 제공된 default값 리턴
map_or_else(defualt: D, f: F)
- Ok(v)에 대해 f(v) 적용하고, Err이면 default함수 결과 리턴
불리언 연산
- Ok는 true, Err은 false처럼 동작하는
and
, or
, xor
연산 가능
and_then(), or_else()
- Result 값에 따라 제어 흐름을 조절할 때 사용
- 함수를 입력으로 받아
and_then<U, F>(op: F) -> Result<U, E>
- Ok(x)이면 함수 op(x) 적용, Err이면 Err(e) 반환
or_else<F, O>(op: O) -> Result<T, F>
- Err(e)이면 함수 op(e) 적용, Ok면 Ok(x) 반환
- None이면 f(v) 리턴
비교
Result<T>
를 대상으로 하는 순환(iterating)
into_iter()
: iterator 소비
iter()
: Ok(v)의 v: &T
에 대한 iterator 리턴
iter_mut()
: Ok(v)의 v: &mut T
에 대한 iterator 리턴