本文へスキップ
BecomeCoder

Rustのエラー · エラー1

E0382: borrow of moved value ― ムーブ後に使った

値を別の変数に渡すと所有権が移動(ムーブ)し、元の変数は使えなくなります。これは二重解放を防ぐための仕組みです。

出るコード

let s1 = String::from("hello");
let s2 = s1;              // 所有権が s2 へ移動
println!("{}", s1);       // もう s1 は使えない

エラーメッセージ

error[E0382]: borrow of moved value: `s1`

直し方

両方で本体が要るなら s1.clone() で複製します。読むだけなら参照 &s1(借用)を渡します。