Avatar ·

如何在 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` 内容的引用?我查阅了文档,