Como obter uma referência ao valor dentro de Option<T> em Rust sem mover?
Olá, colegas! Sou novo em Rust e encontrei um problema que me parece muito estranho. Tenho uma struct que contém um campo do tipo `Option`. Quero escrever um método que retorna uma referência à string dentro deste Option, se existir, ou algo como `None`, se não existir.
Aqui está meu código:
```rust
struct Person {
name: Option,
}
impl Person {
fn get_name(&self) -> &str {
// Como faço aqui para obter uma referência ao String dentro do Option?
// self.name.unwrap() // Erro: não é possível mover de um contexto emprestado
// &self.name.unwrap() // Também não funciona
}
}
```
Quando tento usar `unwrap()`, o compilador diz que estou tentando mover o valor de `self.name`, mas `self` foi emprestado apenas por referência. Entendo que `Option::unwrap()` consome o valor, mas preciso apenas lê-lo, sem tomar posse.
Como faço para emprestar corretamente uma referência ao conteúdo de `Option`? Consultei a documentação,
No answers yet.
Faça login para deixar uma resposta