我想使用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)