如何在Rust中复制切片?

问题描述 投票:4回答:1

我有一片我想要复制的片段。例如,如果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中做同样的事情?

list rust replicate
1个回答
4
投票

使用iter从数组创建一个迭代器,然后使用cycle创建一个无休止重复的迭代器,然后使用take将其限制为4个周期。

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

    for y in ys {
        println!("{}", y);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.