Avatar ·

Comment obtenir une référence sur une valeur à l'intérieur d'un Option<T> en Rust sans déplacement ?

Bonjour, collègues ! Je suis nouveau en Rust et j'ai rencontré un problème qui me semble très étrange. J'ai une structure qui contient un champ de type `Option`. Je veux écrire une méthode qui retourne une référence sur la chaîne à l'intérieur de ce Option, si elle existe, ou quelque chose comme `None` si elle n'existe pas. Voici mon code : ```rust struct Person { name: Option, } impl Person { fn get_name(&self) -> &str { // Comment puis-je obtenir ici une référence sur le String à l'intérieur de Option ? // self.name.unwrap() // Erreur : impossible de déplacer depuis un contexte emprunté // &self.name.unwrap() // Ne fonctionne pas non plus } } ``` Quand j'essaie d'utiliser `unwrap()`, le compilateur dit que j'essaie de déplacer la valeur de `self.name`, mais `self` n'est emprunté que par référence. Je comprends que `Option::unwrap()` consomme la valeur, mais j'ai seulement besoin de la lire, sans prendre possession. Comment emprunter correctement une référence sur le contenu d'un `Option` ? J'ai consulté la documentation,