Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 如何借用未包装的期权<;T>;?_Rust_Closures_Ownership - Fatal编程技术网

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));
}