如何在 Rust 中复制切片?

4 list replicate rust

我有一个要复制的切片。例如,如果xs = [1, 2, 3], 我需要复制它 4 次,我最终会得到ys = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3].

在 Haskell 中,我会做这样的事情:

ys = take (4 * length xs) $ cycle xs
Run Code Online (Sandbox Code Playgroud)

这在 Rust 中如何类似地完成?

Sch*_*ern 5

从数组中创建一个迭代器iter,然后是一个无限重复的迭代器cycle,然后将其限制为 4 个循环take

fn main() {
    let xs = [5,7,13];
    let ys = xs.iter()
                .cycle()
                .take(xs.len() * 4);

    for y in ys {
        println!("{}", y);
    }
}
Run Code Online (Sandbox Code Playgroud)