相关疑难解决方法(0)

根据某些条件从Vec中删除元素

我的代码看起来像这样:

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));
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,Bar不允许复制或克隆.

我想删除所有Bar不满足该条件的s.最初我以为我可以迭代它们并调用remove但是我不允许有两个可变借用或一个可变借用,如果存在一个完全有意义的不可变借用.

我想最简单的事情是只clone,filtercollect,但我不能克隆或复制.

我该怎么做?

rust

5
推荐指数
2
解决办法
1577
查看次数

标签 统计

rust ×1