面试题答案
一键面试struct MyCollection<T> {
data: Vec<T>,
}
impl<T> MyCollection<T> {
fn filter_map<F, U>(self, f: F) -> MyCollection<U>
where
F: FnMut(T) -> Option<U>,
{
let mut new_data = Vec::new();
for item in self.data {
if let Some(value) = f(item) {
new_data.push(value);
}
}
MyCollection { data: new_data }
}
}