1个稳定版本

1.0.0 2021年7月22日

#1421算法

Download history 149/week @ 2024-01-04 39/week @ 2024-01-11 127/week @ 2024-01-18 140/week @ 2024-01-25 315/week @ 2024-02-01 253/week @ 2024-02-08 100/week @ 2024-02-15 188/week @ 2024-02-22 258/week @ 2024-02-29 203/week @ 2024-03-07 186/week @ 2024-03-14 260/week @ 2024-03-21 180/week @ 2024-03-28 116/week @ 2024-04-04 178/week @ 2024-04-11 253/week @ 2024-04-18

每月 738 次下载
2 个crate中使用(通过 polynomen

GPL-3.0-only

15KB
193

zip-fill - 迭代器库

仓库

crate注册

文档

将两个迭代器连接起来,如果它们长度不同,则最短的迭代器将使用默认值进行扩展。

这两个迭代器必须具有相同的 Item 类型。

这与来自python库 itertoolzip_longest 算法类似。

示例

use zip_fill::ZipFill;
let a = [ 1, 2, 3, 4];
let b = [ 1, 2];
let z: Vec<_> = a.iter().zip_longest(&b, &0).collect();
assert_eq!(vec!((&1, &1), (&2, &2), (&3, &0), (&4, &0)), z);
let z: Vec<_> = zip_fill::zip_longest_with(&a, &b, &0, |a, b| a + b).collect();
assert_eq!(vec!(2, 4, 3, 4), z);

要求

最低测试的rustc版本:1.44


lib.rs:

迭代器扩展

将两个迭代器连接起来,如果它们长度不同,则最短的迭代器将使用默认值进行扩展。

这两个迭代器必须具有相同的 Item 类型。

这与来自python库 itertoolzip_longest 算法类似。

示例

use zip_fill::ZipFill;
let a = [ 1, 2, 3, 4];
let b = [ 1, 2];
let z: Vec<_> = a.iter().zip_longest(&b, &0).collect();
assert_eq!(vec!((&1, &1), (&2, &2), (&3, &0), (&4, &0)), z);
let z: Vec<_> = zip_fill::zip_longest_with(&a, &b, &0, |a, b| a + b).collect();
assert_eq!(vec!(2, 4, 3, 4), z);

无运行时依赖