Rust 在迭代器链中解引用值的最佳方法是什么?

Rust 在迭代器链中解引用值的最佳方法是什么?,rust,iterator,Rust,Iterator,当我使用迭代器时,我经常发现自己需要显式地取消引用值。以下代码查找向量中所有元素对的总和: 外部板条箱工具; 使用板条箱::itertools::itertools; fn干线{ 设x:Vec=1..4.collect; x、 iter .组合2 图席席XII. ITE.地图栏条**条 .sum:: .对于每个| bar | println!{:?},bar; } 有没有比使用地图更好的方法来执行解引用 甚至更好地是在没有明确撤销引用的情况下执行这些类型的操作。< P>使用XI.ITER意味着您

当我使用迭代器时,我经常发现自己需要显式地取消引用值。以下代码查找向量中所有元素对的总和:

外部板条箱工具; 使用板条箱::itertools::itertools; fn干线{ 设x:Vec=1..4.collect; x、 iter .组合2 图席席XII. ITE.地图栏条**条 .sum:: .对于每个| bar | println!{:?},bar; } 有没有比使用地图更好的方法来执行解引用

甚至更好地是在没有明确撤销引用的情况下执行这些类型的操作。

< P>使用XI.ITER意味着您明确地要求对席内的值进行引用的迭代器。因为在这种情况下您不需要引用,而是需要实际值,所以您希望使用X.ItotoITER获取值的迭代器。 所以你可以改变

.map(|xi| xi.iter().map(|bar| **bar).sum::<i32>())


使用iter有什么缺点吗?没有,你是使用iter,iter mut还是into iter,取决于你想要输出什么类型的。谢谢!事实上,我一开始是使用Inu iter,但后来我放弃了所有权的想法。
.map(|xi| xi.into_iter().sum::<i32>())