Fehler "cannot move out of borrowed content" in Rust: Wie beheben?
Hallo zusammen! Ich habe angefangen, Rust zu lernen, und bin auf einen Fehler gestoßen, den ich nicht verstehe. Ich habe eine `User`-Struktur und eine Funktion, die deren Feld `name` ändern soll. Hier ist der Code:\n\n```rust\nstruct User {\n name: String,\n age: u32,\n}\n\nfn update_name(user: &User, new_name: String) {\n user.name = new_name; // Fehler hier\n}\n\nfn main() {\n let user = User {\n name: String::from("Alice"),\n age: 30,\n };\n update_name(&user, String::from("Bob"));\n println!("{}", user.name);\n}\n```\n\nDer Compiler gibt aus: `cannot move out of borrowed content` und `cannot move out of behind a shared reference`. Ich verstehe, dass ich `&User` übergebe – das ist eine unveränderliche Referenz, aber ich möchte das Feld `name` ändern. Wenn ich die Signatur auf `&mut User` ändere, ändert sich der Fehler zu `cannot borrow immu
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs