RustのVec<Result<T, E>>をfilter_mapでVec<T>にする

fn main() {
    let example: Vec<Result<i8, ()>> = vec![1,2,3]
        .into_iter()
        .map(|i| if i != 1 { Ok(i) } else { Err(()) })
        .collect();

    assert_eq!(vec![2,3], example.into_iter().filter_map(|i| { i.ok() }).collect::<Vec<i8>>())
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA