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,