質問内容
下記コードの動作においてなぜコンパイルが通るのかがわかりません。
自分が考えている動作の流れとしましては、
0. 10が変数xに束縛される。
0. xの可変借用がyに束縛される。
0. yの所有権がadd関数の引数xに移動する。
0. 二回目のadd関数でエラーが起きる。
と予想していました。
どのような動作がここで行われているかご教授いただきたいと思いまして質問させていただきます。
よろしくおねがいします。
該当のソースコード
Rust
1fn add(x: &mut i32) { 2 *x += 10; 3} 4 5fn main() { 6 let mut x = 10; 7 let y = &mut x; 8 9 add(y); 10 add(y); 11 println!("{}", x); 12} 13

回答2件
あなたの回答
tips
プレビュー


バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/12 06:33