【发布时间】:2020-02-16 15:28:28
【问题描述】:
我有三个结构:
struct A;
struct B;
struct C {
a: Option<A>,
b: Option<B>
}
给定输入 Vec<A> 和 Vec<B> 以及一些谓词函数,我想创建一个输出 Vec<C>,它是输入元素的组合,如下所示:
let aVec: Vec<A> = vec![];
let bVec: Vec<B> = vec![];
let mut cVec: Vec<C> = vec![];
for a in aVec {
if let Some(b) = bVec.into_iter().find(predicate) {
cVec.push(C{a: Some(a), b: Some(b)});
}
}
有没有办法做到这一点而不需要B 是可复制的?操作后不需要两个输入向量。另外,如果没有循环,这可能吗?
【问题讨论】:
标签: rust