私のコードに基づいてVecとから要素を削除すると、次のようになります。Bar
をコピーまたは複製することを許可されていないことをいくつかの条件
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
を削除します。当初私はそれらを反復してremove
と呼ぶことができたと思っていましたが、完全に意味のある不変の借りがあれば、2つの可変の借用または1つの可変的な借入を許されません。
最も簡単なことは、ちょうどclone
,filter
、collect
になると思いますが、複製またはコピーすることはできません。
どうすればよいですか?