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,
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
TypeScript vs Python para backend: qué elegir en 2024