當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust repeat用法及代碼示例


本文簡要介紹rust語言中 Function std::iter::repeat 的用法。

用法

pub fn repeat<T>(elt: T) -> Repeat<T> where    T: Clone,

創建一個無限重複單個元素的新迭代器。

repeat() 函數一遍又一遍地重複單個值。

repeat() 這樣的無限迭代器經常與像 Iterator::take() 這樣的適配器一起使用,以使它們成為有限的。

如果您需要的迭代器的元素類型沒有實現 Clone ,或者如果您不想將重複的元素保留在內存中,則可以改用 repeat_with() 函數。

例子

基本用法:

use std::iter;

// the number four 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());

// yup, still four
assert_eq!(Some(4), fours.next());

使用 Iterator::take() 變得有限:

use std::iter;

// that last example was too many fours. Let's only have four fours.
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());

// ... and now we're done
assert_eq!(None, four_fours.next());

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Function std::iter::repeat。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。