Option
論理演算系
pub fn and<U>(self, optb: Option<U>) -> Option<U>
pub fn or(self, optb: Option<T>) -> Option<T>
pub fn xor(self, optb: Option<T>) -> Option<T>
Some(v)
をtrue、None
をfalseとして、self
とoptb
を各演算子で短絡評価ありで評価した結果を返すイメージ
pub fn and_then<U, F>(self, f: F) -> Option<U>
where
F: FnOnce(T) -> Option<U>,
pub fn or_else<F>(self, f: F) -> Option<T>
where
F: FnOnce() -> Option<T>,
self
とf()
を各演算子で短絡評価ありで評価した結果を返すイメージ
map系
pub fn map<U, F>(self, f: F) -> Option<U>
where
F: FnOnce(T) -> U,
| Some(v) | None |
---|
map | Some(f(v)) | None |
map_or系
pub fn map_or<U, F>(self, default: U, f: F) -> U
where
F: FnOnce(T) -> U,
pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
where
D: FnOnce() -> U,
F: FnOnce(T) -> U,
- 戻り値の型は
Option<U>
ではなくU
- Noneの場合はdefaultの値を返す
- Someの場合は中身をmapしてそのまま返す
| Some(v) | None |
---|
map_or | f(v) | default |
map_or_else | f(v) | default() |
ok系
pub fn ok_or<E>(self, err: E) -> Result<T, E>
pub fn ok_or_else<E, F>(self, err: F) -> Result<T, E>
where
F: FnOnce() -> E,
| Some(v) | None |
---|
ok_or | Ok(v) | Err(err) |
ok_or_else | Ok(v) | Err(err()) |
transpose
impl<T, E> Option<Result<T, E>>
pub fn transpose(self) -> Result<Option<T>, E>
Option<Result<T, E>>
→ Result<Option<T>, E>
の変換
self | 変換後 |
---|
None | Ok(None) |
Some(Ok(v)) | Ok(Some(v)) |
Some(Err(err)) | Ok(Err(err)) |
Result
論理演算系
pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>
pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>
Ok(v)
をtrue、Err(err)
をfalseとして、self
とres
を各演算子で短絡評価ありで評価した結果を返すイメージ
pub fn and_then<U, F>(self, op: F) -> Result<U, E>
where
F: FnOnce(T) -> Result<U, E>,
pub fn or_else<F, O>(self, op: O) -> Result<T, F>
where
O: FnOnce(E) -> Result<T, F>,
self
とop()
を各演算子で短絡評価ありで評価した結果を返すイメージ
map系
pub fn map<U, F>(self, op: F) -> Result<U, E>
where
F: FnOnce(T) -> U,
pub fn map_err<F, O>(self, op: O) -> Result<T, F>
where
O: FnOnce(E) -> F,
- Ok(v)とErr(err)の中身をそれぞれmapする
| Ok(v) | Err(err) |
---|
map | Ok(op(v)) | Err(err) |
map_err | Ok(v) | Err(op(err)) |
map_or系
pub fn map_or<U, F>(self, default: U, f: F) -> U
where
F: FnOnce(T) -> U,
pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
where
D: FnOnce(E) -> U,
F: FnOnce(T) -> U,
- 戻り値の型は
Result<U, E>
ではなくU
- Errの場合はdefaultの値を返す
- Okの場合は中身をmapしてそのまま返す
| Ok(v) | Err(err) |
---|
map_or | op(v) | default |
map_or_else | op(v) | default() |
transpose
impl<T, E> Result<Option<T>, E>
pub fn transpose(self) -> Option<Result<T, E>>
Result<Option<T>, E>
→ Option<Result<T, E>>
の変換
self | 変換後 |
---|
Ok(None) | None |
Ok(Some(v)) | Some(Ok(v)) |
Err(err) | Some(Err(err)) |