2
我有這樣的代碼:不能搬出借來的內容 - 裁判不起作用
enum MyEnum1 {
val1,
val2
}
struct Struct1 {
field1: MyEnum1,
field2: String
}
fn fn1(a: Struct1, b: String, c: String) {
let let1 = fn2(&a.field1);
}
fn fn2(a: &MyEnum1) {
let a11 = *a; // error
let s = Struct1 { field1: a11, field2: "fdsfds".to_string() };
}
fn main() {
println!("Hello World!");
}
的錯誤是錯誤:不能搬出借來的內容
我被編譯器建議要使用ref
或ref mut
,我試圖使用它們,但仍然沒有幫助。
fn fn2(a: &MyEnum1) {
let ref a11 = *a; // still the error
let s = Struct1 { field1: *a11, field2: "fdsfds".to_string() };
}
實際的錯誤現在在下一行,而不是在您添加的'仍然error'評論 –
@ker,沒有行..... .. –
解決方案是實現複製,問題是關於「不能移出借用的內容」,我認爲這是非常重複的 –