本文簡要介紹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 Peekable.peek_mut用法及代碼示例
- Rust Peekable.next_if用法及代碼示例
- Rust Peekable.next_if_eq用法及代碼示例
- Rust PermissionsExt.set_mode用法及代碼示例
- Rust Permissions.set_readonly用法及代碼示例
- Rust PermissionsExt.from_mode用法及代碼示例
- Rust Permissions.readonly用法及代碼示例
- Rust PermissionsExt.mode用法及代碼示例
- Rust PanicInfo.payload用法及代碼示例
- Rust Path.components用法及代碼示例
- Rust PathBuf.with_capacity用法及代碼示例
- Rust Poll.map用法及代碼示例
- Rust Path.is_symlink用法及代碼示例
- Rust Poll.map_ok用法及代碼示例
- Rust Pointer用法及代碼示例
- Rust Path.canonicalize用法及代碼示例
- Rust PartialOrd.partial_cmp用法及代碼示例
- Rust Path.is_relative用法及代碼示例
- Rust Path.file_stem用法及代碼示例
- Rust Path.to_string_lossy用法及代碼示例
- Rust Path.display用法及代碼示例
- Rust PathBuf.into_os_string用法及代碼示例
- Rust PanicInfo用法及代碼示例
- Rust PathBuf.pop用法及代碼示例
- Rust Path.ancestors用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::iter::Peekable.peek。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。