flat_map で Vec<String> を得る

flat_map だと、 cloned() しないと、 Option<&String> になってエラーになる。
Vec<String> として取り出したい場合は、 cloned() をつける。

let result: Vec<String> = vec![Some("hoge".to_owned()), None] .iter() .flat_map( |f| f ) .cloned() .collect();
println!("{:?}", result);