с 1 по 10 оставить как есть, с 10 по 20 запушить только каждый третий, с 20 по 30 каждый 5. Кажется работает, но может есть лучше практики
fn main() {
let arr: Vec<u32> = (1..31).collect();
let mut result: Vec<&u32> = Vec::with_capacity(arr.len());
for (i, item) in arr.iter().enumerate() {
match i {
0..=9 => result.push(item),
i @ 10..=19 => {
if i % 3 == 0 {
result.push(item)
}
},
i @ 20..=29 => {
if i % 5 == 0 {
result.push(item)
}
},
_ => (),
}
}
println!("{:?}", result)
}
используй слайсы [start..after_end]
А сами элементы начинаются с одного, но должен именно индекс учитываться? Типа каждый третий это 10, 13, 16, 19?
Обсуждают сегодня