使用 Option 中的 0 或 1 个元素创建向量

at5*_*321 2 rust

有没有更短、更简单的方法来实现这一目标:

let o: Option<i32> = ...;
let ve: Vec<i32> = match o {
    None => vec![],
    Some(n) => vec![n],
};
Run Code Online (Sandbox Code Playgroud)

Mih*_*hir 5

let o: Option<i32> = Some(2);
let ve: Vec<i32> = o.into_iter().collect();
Run Code Online (Sandbox Code Playgroud)

游乐场链接


Pet*_*all 5

OptionImplements IntoIterator,因此您可以创建一个迭代器并收集它:

let ve: Vec<i32> = o.into_iter().collect();
Run Code Online (Sandbox Code Playgroud)