質問内容
下記コードの動作においてなぜコンパイルが通るのかがわかりません。
自分が考えている動作の流れとしましては、
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