小编0x4*_*x42的帖子

如何使用filter_map()而不是filter()与map()结合而不降低性能?

我想使用filter_map()而不是unwrap()in the map()andfilter()但我发现这样做时性能会下降。如何在filter_map()不损失性能的情况下编写代码?首先为什么会出现性能损失?

src/lib.rs

use std::collections::HashMap;

pub enum Kind {
    Square(Square),
    Circle(Circle),
}

#[derive(Default, Copy, Clone)]
pub struct Circle {
    a: u32,
    b: u32,
    c: u32,
    d: u32,
}

#[derive(Default)]
pub struct Square {
    a: u32,
    b: Option<u32>,
    c: Option<u32>,
    d: Option<u32>,
    e: Option<u32>,
}

impl Kind {
    pub fn get_circle(&self) -> Option<&Circle> {
        if let Kind::Circle(b) = self {
            return Some(b);
        }
        None
    }
}
Run Code Online (Sandbox Code Playgroud)

工作台/test.rs

#![feature(test)]
extern crate test; …
Run Code Online (Sandbox Code Playgroud)

iterator hashmap rust

6
推荐指数
1
解决办法
6607
查看次数

标签 统计

hashmap ×1

iterator ×1

rust ×1