从&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 次 |
| 最近记录: |