MST

星途 面试题库

面试题:Rust模式匹配灵活性拓展之高级题

假设有一个复杂的结构体嵌套:`struct Inner { value: i32 }`,`struct Outer { inner: Option<Inner> }`,现在有一个`Vec<Outer>`类型的向量。编写一个函数,利用Rust模式匹配的灵活性拓展,统计向量中所有`Inner`结构体里`value`大于10的数量。
10.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct Inner {
    value: i32,
}

struct Outer {
    inner: Option<Inner>,
}

fn count_values_gt_10(vec: &Vec<Outer>) -> u32 {
    vec.iter()
       .filter_map(|outer| match outer.inner {
            Some(inner) if inner.value > 10 => Some(1),
            _ => None,
        })
       .sum()
}