我有一个要复制的切片。例如,如果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 中如何类似地完成?
从数组中创建一个迭代器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)