Заметка: итерация по нескольким срезам одного типа?


#1

Никто не знает удобного способа сцепить вместе несколько срезов одного типа, что бы одним for’ом проитерироваться по ним? Без itertools.

https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.chain

Так их можно сколько угодно сцепить и даже .iter() у “хвостов” вызывать не нужно:

fn main() {
    let s1 = &[1, 2, 3];
    let s2 = &[4, 5, 6];
    let s3 = &[7, 8, 9];
    for n in s1.iter().chain(s2).chain(s3) {
        println!("{}", n);
    }
}

Playground