【发布时间】:2017-11-24 11:05:57
【问题描述】:
我正在做一个宠物项目,我发现自己有一个 HashSet 元组。具体
HashSet<(String,generic_array::GenericArray<u8,generic_array::typenum::U32>, u64)>
我想对 u64 元素求和,并且可以使用 for 循环来做到这一点而不会出现问题:
for element in hashset{
sum = sum+element.2;
}
但是,我遇到了集合的 fold 函数,我写了:
let y = hashset.fold(0, |sum x| sum+x)
哪个有效,但我不清楚|sum x| 的语法。我可以推断我只是在命名变量,但我不明白我将如何对此进行扩展。还有 fold 如何知道要操作元组的哪个元素?
【问题讨论】:
-
|sum x|不是有效的 Rust 语法。我邀请你写一个适当的minimal reproducible example 你所拥有的。 -
嗯...它编译并运行所以...是的。至于写一个合适的例子......我在问一个关于我不理解的每一段代码的问题。重写我不理解的东西可能不会产生更好的代码段。
-
这不是它的工作原理。提问者的工作是提供一个最小但可重复的例子来说明你正在经历的事情。我告诉你,你在问题中的内容不应该编译,所以你现在在问题中的内容不足以让我们理解问题。无论您是否不理解它通常都无关紧要,处理minimal reproducible example 是询问过程的一部分。另外,请附上您的编译器版本和工具链。