Sometimes there is a need to zip two iterables of various lengths.
If it is known which one is longer, then use the following approach:
First one must be longer.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let nums1 = [1, 2, 3, 4];
let nums2 = [10, 20];
for (n1, n2) in nums1
.into_iter()
.zip(nums2.into_iter().chain(std::iter::repeat(0i32)))
{
println!("{n1} - {n2}");
}
// Output:
// 1 - 10
// 2 - 20
// 3 - 0
// 4 - 0