我的代码:错误:使用移动的值 - 我应该使用“&”还是“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)。 –