这里有一个例子
#[derive(Debug)]
struct Point {
x: Vec<i32>,
y: i32,
}
let mut p = Point { x: vec![1], y: 7 };
// borrow out mutable reference p to a and b
let Point { x: a, y: b } = &mut p;
// mutate a
a.push(2);
// how do I get p back?
println!("{:?}", p);
有没有一种方法可以在不创建新的块或将其抽象成函数的情况下取消引用?
{
,并在a.push(2)
之后关闭它来创建一个块是(在NLL之前)向Rust发出引用生命周期预期结束的信号的方法。 - Paolo Falabella