Avatar ·

Erreur "cannot move out of borrowed content" en Rust : causes et correction

Salut ! J'ai commencé à apprendre Rust et je suis tombé sur une erreur que je ne comprends pas. Code : ```rust fn main() { let s = String::from("hello"); let r = &s; let s2 = *r; // Erreur : cannot move out of borrowed content println!("{}", s2); } ``` Je pensais que `*r` déréférençait la référence et me donnait la propriété de la chaîne `s`. Mais le compilateur dit : "cannot move out of `*r` which is behind a shared reference". Pourquoi ? Pourtant, je veux juste copier la valeur. La même chose se produit avec les vecteurs : ```rust fn get_first(v: &Vec) -> i32 { v[0] // Erreur : cannot move out of borrowed content } ``` Je comprends que Rust suit strictement la propriété, mais je ne comprends pas pourquoi on ne peut pas simplement "prendre" la valeur par référence. Dans d'autres langages (C++, Python), cela fonctionne. Comment obtenir correctement