Option
を持つ構造体を扱っているときなどに、Option
の値を取得してその後 None
で置き換えたいことがある。
そんなときは take
メソッド が使える。
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); }