Function core::iter::repeat

1.0.0 · source ·
pub fn repeat<T: Clone>(elt: T) -> Repeat<T> 
Expand description

创建一个新的迭代器,该迭代器不断重复单个元素。

repeat() 函数一次又一次地重复单个值。

无限迭代器 (如 repeat()) 通常与适配器 (如 Iterator::take()) 一起使用,以使其具有有限性。

如果所需的迭代器元素类型未实现 Clone,或者不想将重复的元素保留在内存中,则可以改用 repeat_with() 函数。

Examples

基本用法:

use std::iter;

// 第四个 4ever:
let mut fours = iter::repeat(4);

assert_eq!(Some(4), fours.next());
assert_eq!(Some(4), fours.next());
assert_eq!(Some(4), fours.next());
assert_eq!(Some(4), fours.next());
assert_eq!(Some(4), fours.next());

// 是的,还是四个
assert_eq!(Some(4), fours.next());
Run

Iterator::take() 进行有限化:

use std::iter;

// 最后一个例子太多了。我们只有四个四。
let mut four_fours = iter::repeat(4).take(4);

assert_eq!(Some(4), four_fours.next());
assert_eq!(Some(4), four_fours.next());
assert_eq!(Some(4), four_fours.next());
assert_eq!(Some(4), four_fours.next());

// ... 现在我们完成了
assert_eq!(None, four_fours.next());
Run