我遇到一个结构问题,我作为一个可变参考传递.只有在定义结构以保存引用时才会出现此问题.
struct Global<'a> {
one: i32,
two: &'a i32
}
fn do_task<'a, F, R: 'a>(global: &'a mut Global<'a>, task: F)
where F: Fn(&'a mut Global<'a>) -> &'a R {
let result = task(global);
}
fn one<'a>(global: &'a mut Global<'a>) -> &'a i32 {
&global.one
}
fn two<'a>(global: &'a mut Global<'a>) -> &'a i32 {
global.two
}
fn main() {
let number = 2;
let mut global = Global {
one: 1,
two: &number
};
do_task(&mut global, one);
do_task(&mut global, two); …Run Code Online (Sandbox Code Playgroud) rust ×1