从&Result
类型中提取数据的好方法是什么?
在我的具体情况下,我有一个&Result<DirEntry, Error>
类型,我无法解开因为我没有拥有该对象.我尝试取消引用并克隆它(*left_item).clone()
,但这只是给我一个错误的注释:
the method `clone` exists but the following trait bounds were not satisfied:
`std::result::Result<std::fs::DirEntry, std::io::Error> : std::clone::Clone`
Run Code Online (Sandbox Code Playgroud)
您正在寻找Result::as_ref
:
转换
Result<T, E>
为Result<&T, &E>
.生成一个新的
Result
,包含对原始的引用,留下原始的到位.
以下代码解决了您的问题:
let entry: &DirEntry = result.as_ref().unwrap();
Run Code Online (Sandbox Code Playgroud)
对于可变版本,Result::as_mut
提供.
归档时间: |
|
查看次数: |
193 次 |
最近记录: |