使用repeat,我可以创建一个重复一个元素的迭代器。但是,如何无限重复多个值?
例如:
let repeat_1 = repeat(1); // 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
let repeat_123 = repeat([1, 2, 3]); // 1, 2, 3, 1, 2, 3, 1, 2, ... // or similar
最佳答案
您可以像这样使用 .cycle()
:
fn main() {
let values = [1, 2, 3];
let repeat_123 = values.iter().cloned().cycle();
for elt in repeat_123.take(10) {
println!("{}", elt)
}
}
它适用于任何可克隆的迭代器(迭代器,而不是其元素)。
请注意,
.cloned()
适配器是附带的!它将切片的迭代器的按引用迭代器元素转换为值。编写此特定序列的一种更简单的方法是:
let repeat_123 = (1..4).cycle();
关于iterator - 如何创建无限重复多个值的迭代器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28436240/