2017-10-11 6 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 

答えて

1

できません。あなたは不変の参照を持っています。つまり、のすべての参照の後ろにあるは、参照の所有者の観点からは変更できません。

これが当てはまらないのであれば、一度にそれぞれの事柄への単一の変更可能な参照だけが存在するという全体的な概念は、簡単に破ることができます。

関連する問題