dyn*_*eed 2 iterator reference min rust
在Rust中,为什么std :: iter :: Iterator的min函数返回引用?
从上面链接的文档页面获取以下示例:
let a = vec![1, 2, 3];
assert_eq!(a.iter().min(), Some(&1));
为什么结果引用的是1包装在Option类型中的值而不是文字值1?这个小细节最近使我震惊。我发现必须先解开结果,然后才能在数学运算中使用它。
技术上讲,它不会:min()返回一个Option<Self::Item>地方Self是Iterator。也就是说,min()返回任何迭代器产生的结果。由于迭代器是通过.iter()在上创建的Vec,因此您会在引用上获得一个迭代器,因此会min()返回一个引用。如果使用,a.into_iter().min()您将获得拥有的价值。
您的问题表明您也想知道以下内容Option:迭代器可能根本不产生任何项目。在这种情况下,min()没有值并None返回。
| 归档时间: | 
 | 
| 查看次数: | 61 次 | 
| 最近记录: |