Rustの借用の解除について

Rust

1fn main() {2 let mut x = 0;3 let y = &mut x;4 {5 let z = y;6 }7 *y = 1;8}

上記のコードでは、「y5行目で既にmoveされています」と出力されてしまいます

Rust

1fn main() {2 let mut x = 0;3 let y = &mut x;4 {5 let z = &mut *y;6 }7 *y = 1;8}

Rust

1fn func(z: &mut i32) {}2 3fn main() {4 let mut x = 0;5 let y = &mut x;6 fn func(y);7 *y = 1;8}

これらのコードでは問題なくコンパイルすることができるのですが、前者との違いは何なのでしょうか

説明が疎かになってしまい申し訳ございません

コメントを投稿

0 コメント