Kann beim Auspacken nicht aus geliehenen Inhalten entfernt werden
Dies ist der Code, den ich ausführen möchte:
fn my_fn(arg1: &Option<Box<i32>>) -> (i32) {
if arg1.is_none() {
return 0;
}
let integer = arg1.unwrap();
*integer
}
fn main() {
let integer = 42;
my_fn(&Some(Box::new(integer)));
}
Ich erhalte den folgenden Fehler:
error[E0507]: cannot move out of borrowed content
--> src/main.rs:5:19
|
5 | let integer = arg1.unwrap();
| ^^^^ cannot move out of borrowed content
Ich sehe, dass es bereits eine Menge Dokumentation zu Problemen mit der Ausleihprüfung gibt, aber nach dem Lesen kann ich das Problem immer noch nicht herausfinden.
Warum ist das ein Fehler und wie löse ich ihn?