2017-10-11 1 views
1
struct A; 
impl A { 
    fn foo(&mut self) {} 
} 

fn main() { 
    let mut a = A; 
    let x = &{ &mut a }; 
    x.foo(); 
} 
error[E0389]: cannot borrow data mutably in a `&` reference 
--> src/main.rs:9:5 
    | 
9 |  x.foo(); 
    | ^assignment into an immutable reference 

Répondre

1

Vous ne pouvez pas. Vous avez une référence immuable, ce qui signifie que tout derrière la référence est immuable du point de vue du propriétaire de la référence.

Si ce n'était pas le cas, alors tout le concept de là ne serait qu'une simple référence mutable à chaque chose à la fois serait trivialement cassable.