我有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()
,但我得到了同样的错误。
答案 0 :(得分:5)
FnMut
需要一个可变接收器,所以你必须有一个可变引用来调用它:
struct Foo<'a> {
callbacks: Vec<&'a mut FnMut(u32)>,
}