當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust Option.and_then用法及代碼示例


本文簡要介紹rust語言中 std::option::Option.and_then 的用法。

用法

pub fn and_then<U, F>(self, f: F) -> Option<U> where    F: FnOnce(T) -> Option<U>,

如果選項是 None 則返回 None ,否則使用包裝的值調用 f 並返回結果。

一些語言將此操作稱為平麵圖。

例子

fn sq(x: u32) -> Option<u32> { Some(x * x) }
fn nope(_: u32) -> Option<u32> { None }

assert_eq!(Some(2).and_then(sq).and_then(sq), Some(16));
assert_eq!(Some(2).and_then(sq).and_then(nope), None);
assert_eq!(Some(2).and_then(nope).and_then(sq), None);
assert_eq!(None.and_then(sq).and_then(sq), None);

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::option::Option.and_then。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。