итерирование нескольких (3 и более) срезов (векторов, массивов) одновременно без bounds check
Мои неглубокие знания в rust говорят, что Iterator::zip позволяет итерировать два контейнера одновременно. Вопрос: существует ли способ итерировать 3 и более контейнера одновременно без bounds check?
Есть очевидный способ сделать v1.iter().zip(v2).zip(v3), но есть ли более эргономичные варианты?
Ответы (1 шт):
Автор решения: vessd
→ Ссылка
Не очень понятно чем не устраивает ваш вариант, но у пакета itertools есть макрос izip
// iterate over three sequences side-by-side
let mut results = [0, 0, 0, 0];
let inputs = [3, 7, 9, 6];
for (r, index, input) in izip!(&mut results, 0..10, &inputs) {
*r = index * 10 + input;
}
assert_eq!(results, [0 + 3, 10 + 7, 29, 36]);