迭代并调用 FnMut 向量中的闭包



我有一个类似的struct

struct Foo<'a> {
    callbacks: Vec<&'a FnMut(u32)>,
}

我想调用每个回调,但我的尝试不起作用:

fn foo(&mut self) {
    for f in &mut self.callbacks {
        (*f)(0);
    }
}

我收到此错误:

error: cannot borrow immutable borrowed content `**f` as mutable

我也尝试了iter_mut()但我得到同样的错误。

FnMut需要一个可变的接收器,所以你必须有一个可变的引用来调用它:

struct Foo<'a> {
    callbacks: Vec<&'a mut FnMut(u32)>,
}

最新更新