Rust 如何借用未包装的期权<;T>;?
我想使用Rust 如何借用未包装的期权<;T>;?,rust,closures,ownership,Rust,Closures,Ownership,我想使用.iter\u mut()和.map()在向量上迭代: 据我所知,我只是借用了职位信息,没有移出任何内容,但借用检查器拒绝了我的代码: 错误[E0507]:无法移出借用的内容 -->src/main.rs:145:31 | 4 |让pos:&Position=&a.Position.unwrap(); |^无法移出借用的内容 我的错误在哪里?您正在寻找: 从选项转换为选项 以下代码解决了您的问题: let pos = a.position.as_ref().unwrap(); 对于可
.iter\u mut()
和.map()
在向量上迭代:
据我所知,我只是借用了职位信息,没有移出任何内容,但借用检查器拒绝了我的代码:
错误[E0507]:无法移出借用的内容
-->src/main.rs:145:31
|
4 |让pos:&Position=&a.Position.unwrap();
|^无法移出借用的内容
我的错误在哪里?您正在寻找:
从选项
转换为选项
以下代码解决了您的问题:
let pos = a.position.as_ref().unwrap();
对于可变版本,提供了
您的代码不起作用,因为当您尝试将数据移出选项
并借用移动的数据时
但是,在这种情况下,更好的解决方案是:
另见:
选项
转换为选项
以下代码解决了您的问题:
let pos = a.position.as_ref().unwrap();
对于可变版本,提供了
您的代码不起作用,因为当您尝试将数据移出选项
并借用移动的数据时
但是,在这种情况下,更好的解决方案是:
另见:
unwrap
将把数据移出您要借用的选项。您应该插入一个选项::as_ref
,它将&选项
转换为选项
,这样您就可以打开该选项,但仍然只能借用数据。unwrap
调用将把数据移出要借用的选项。您应该插入一个选项::as_ref
,它将&选项
转换为选项
,这样您就可以打开该选项,但仍然只能借用数据。
let pos = a.position.as_ref().unwrap();
if let Some(ref pos) = a.position {
a.distance = Some(calculate_distance(&x, &y, &pos.latitude, &pos.longitude));
}