如何在 Rust 中复制一个切片?

How to replicate a slice in 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

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

使用 iter, then an endlessly repeating iterator with cycle, then limit it to 4 cycles with take 从数组创建一个迭代器。

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

    for y in ys {
        println!("{}", y);
    }
}