当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust Peekable.peek用法及代码示例


本文简要介绍rust语言中 std::iter::Peekable.peek 的用法。

用法

pub fn peek(&mut self) -> Option<&<I as Iterator>::Item>

返回对 next() 值的引用而不推进迭代器。

next 一样,如果有值,则将其包装在 Some(T) 中。但如果迭代结束,则返回None

因为peek() 返回一个引用,并且许多迭代器对引用进行迭代,所以返回值是一个双重引用的情况可能会令人困惑。您可以在下面的示例中看到这种效果。

例子

基本用法:

let xs = [1, 2, 3];

let mut iter = xs.iter().peekable();

// peek() lets us see into the future
assert_eq!(iter.peek(), Some(&&1));
assert_eq!(iter.next(), Some(&1));

assert_eq!(iter.next(), Some(&2));

// The iterator does not advance even if we `peek` multiple times
assert_eq!(iter.peek(), Some(&&3));
assert_eq!(iter.peek(), Some(&&3));

assert_eq!(iter.next(), Some(&3));

// After the iterator is finished, so is `peek()`
assert_eq!(iter.peek(), None);
assert_eq!(iter.next(), None);

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::iter::Peekable.peek。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。