【发布时间】:2016-10-14 00:46:50
【问题描述】:
我的代码如下所示:
struct Bar {
i: i32,
}
struct Foo {
v: Vec<Bar>,
}
impl Foo {
fn foo(&mut self) {
self.v.drain(self.v.iter().filter(|b| b.i < 10));
}
}
注意Bar不允许被复制或克隆。
我想删除所有不满足该条件的Bars。最初我以为我可以遍历它们并调用remove,但如果有一个完全有意义的不可变借用,我不允许有两个可变借用或一个可变借用。
我想最简单的方法是只使用clone、filter 和collect,但我不允许克隆或复制。
我该怎么做?
【问题讨论】:
标签: rust