初級 › E0382: borrow of moved value(ムーブ後の値の使用)の原因と直し方 › パターン1
E0382: borrow of moved value(ムーブ後の値の使用)の原因と直し方
StringやVecのようにCopyトレイトを実装しない値を別の変数に代入すると、所有権が移動(ムーブ)します。
1 fn main() { 2 let s1 = String::from("hello"); 3 let s2 = _____________; ^ 4 println!("{} {}", s1, s2); 5 }
error[E0382]: borrow of moved value: `s1`
空欄を埋めて実行を通す
s1をそのままs2に代入すると所有権が移動し、s1は無効になります。両方使いたい場合はcloneで複製します。
次の問題