Avatar ·

Cómo obtener una referencia al valor dentro de Option<T> en Rust sin moverlo

¡Hola, colegas! Soy nuevo en Rust y me encontré con un problema que me parece muy extraño. Tengo una estructura que contiene un campo de tipo `Option`. Quiero escribir un método que devuelva una referencia al string dentro de este Option, si existe, o algo como `None` si no existe. Aquí está mi código: ```rust struct Person { name: Option, } impl Person { fn get_name(&self) -> &str { // ¿Cómo obtengo aquí una referencia al String dentro de Option? // self.name.unwrap() // Error: no se puede mover desde un contexto prestado // &self.name.unwrap() // Tampoco funciona } } ``` Cuando intento usar `unwrap()`, el compilador dice que estoy intentando mover el valor de `self.name`, pero `self` está prestado solo por referencia. Entiendo que `Option::unwrap()` consume el valor, pero solo necesito leerlo, sin tomar posesión. ¿Cómo puedo tomar prestada correctamente una referencia al contenido de `Option`? He revisado la documentación,