6 个发布版本
0.1.5+已弃用 | 2022 年 12 月 19 日 |
---|---|
0.1.4 | 2020 年 12 月 27 日 |
0.1.3 | 2020 年 6 月 16 日 |
0.1.2 | 2019 年 5 月 21 日 |
0.1.1 | 2016 年 6 月 19 日 |
#17 在 #fold 中
每月 552 次下载
用于 9 个 crate (7 直接)
8KB
iter.reduce(fn)
此 crate 为迭代器提供了一个类似 fold
但没有初始值的 reduce
函数。如果迭代器为空,则函数返回 None
,否则返回 Some(value)
。这与 Scala 中的 reduce
和 fold
之间的区别相匹配。
[dependencies]
reduce = "0.1"
示例
use reduce::Reduce;
fn main() {
// Reduce a non-empty iterator into Some(value)
let v = vec![1usize, 2, 3, 4, 5];
let sum = v.into_iter().reduce(|a, b| a + b);
assert_eq!(Some(15), sum);
// Reduce an empty iterator into None
let v = Vec::<usize>::new();
let sum = v.into_iter().reduce(|a, b| a + b);
assert_eq!(None, sum);
}
许可
根据您的选择,在 Apache 许可证,版本 2.0 或 MIT 许可证 下许可。除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在此 crate 中的任何贡献,都将按照上述方式双许可,没有任何附加条款或条件。