我的代碼:錯誤:使用移動的值 - 我應該使用「&」還是「mut」或其他?
enum MyEnum1 {
//....
}
struct Struct1 {
field1: MyEnum1,
field2: String
}
fn fn1(a: Struct1, b: String, c: String) -> String {
let let1 = fn2(a.field1);
let let2 = fn3(let1, b, c);
format!("{} something 123 {}", let1, let2)
}
fn fn2(a: MyEnum1) -> String {
//....
}
fn fn3(a: MyEnum1, b: Struct1) -> String {
//....
}
error: use of moved value: `a.field1`
error: use of moved value: `let1`
我怎樣才能解決這些問題?我應該添加&
到'fn2 and
fn3 ? Or
mut`的參數嗎?我無法理解如何解決這類錯誤的想法。
您的代碼會產生與您所描述的不同的錯誤,請提供一個工作示例 –
您的代碼不一致。 'fn3'聲明不同意它是如何被調用的。這段代碼會給你輸入錯誤,而不是所有權。請使你的代碼[一個可編譯的例子](http://stackoverflow.com/help/mcve)。 –