Rust में "cannot move out of borrowed content" त्रुटि: कैसे ठीक करें?
सभी को नमस्ते! मैंने Rust सीखना शुरू किया है और एक त्रुटि का सामना किया जिसे मैं समझ नहीं पा रहा हूँ। मेरे पास एक `User` struct और एक function है जो इसके `name` field को बदलना चाहिए। यहाँ कोड है:
```rust
struct User {
name: String,
age: u32,
}
fn update_name(user: &User, new_name: String) {
user.name = new_name; // यहाँ त्रुटि
}
fn main() {
let user = User {
name: String::from("Alice"),
age: 30,
};
update_name(&user, String::from("Bob"));
println!("{}", user.name);
}
```
कंपाइलर कहता है: `cannot move out of borrowed content` और `cannot move out of behind a shared reference`। मैं समझता हूँ कि मैं `&User` पास कर रहा हूँ — यह एक immutable reference है, लेकिन मैं `name` field को बदलना चाहता हूँ। अगर मैं signature को `&mut User` में बदल दूँ, तो त्रुटि बदल जाती है `cannot borrow immutable local variable 'user' as mutable`। मैंने `main` में `user` से पहले `mut` जोड़ने की कोशिश की, लेकिन तब कंपाइलर कहता है कि इसे mutable के रूप में उधार नहीं लिया जा सकता, क्योंकि यह पहले से immutable के रूप में उधार लिया गया है (हालाँकि मैंने ऐसा नहीं किया)