Rust メモ Option | 値を取得して None で置き換える

Option を持つ構造体を扱っているときなどに、Option の値を取得してその後 None で置き換えたいことがある。

そんなときは take メソッド が使える。

Rust Playground

fn main() {
    let mut x = Some(10);

    // Some(v) に対して呼び出すと Some(v) が返ってくる
    assert_eq!(x.take(), Some(10));

    // x は None になってる
    assert_eq!(x, None);
 
    // None に対して呼び出すと None が返ってくる
    assert_eq!(x.take(), None);
}