如何在 Rust 中获取 Option<T> 内部值的引用而不移动?
大家好!我是 Rust 新手,遇到了一个我觉得很奇怪的问题。我有一个结构体,包含一个 `Option` 类型的字段。我想写一个方法,如果存在则返回该 Option 内部字符串的引用,否则返回类似 `None` 的东西。
这是我的代码:
```rust
struct Person {
name: Option,
}
impl Person {
fn get_name(&self) -> &str {
// 我该如何在这里获取 Option 内部 String 的引用?
// self.name.unwrap() // 错误:不能从借用的上下文中移动
// &self.name.unwrap() // 也不起作用
}
}
```
当我尝试使用 `unwrap()` 时,编译器说我试图从 `self.name` 移动值,但 `self` 只是通过引用借用。我明白 `Option::unwrap()` 会消费值,但我只需要读取它,而不获取所有权。
如何正确借用 `Option` 内容的引用?我查阅了文档,