本文简要介绍rust语言中 std::iter::Peekable.peek_mut
的用法。
用法
pub fn peek_mut(&mut self) -> Option<&mut <I as Iterator>::Item>
返回对 next() 值的可变引用,而不推进迭代器。
与 next
一样,如果有值,则将其包装在 Some(T)
中。但如果迭代结束,则返回None
。
因为peek_mut()
返回一个引用,并且许多迭代器对引用进行迭代,所以返回值是一个双重引用的情况可能会令人困惑。您可以在下面的示例中看到这种效果。
例子
基本用法:
let mut iter = [1, 2, 3].iter().peekable();
// Like with `peek()`, we can see into the future without advancing the iterator.
assert_eq!(iter.peek_mut(), Some(&mut &1));
assert_eq!(iter.peek_mut(), Some(&mut &1));
assert_eq!(iter.next(), Some(&1));
// Peek into the iterator and set the value behind the mutable reference.
if let Some(p) = iter.peek_mut() {
assert_eq!(*p, &2);
*p = &5;
}
// The value we put in reappears as the iterator continues.
assert_eq!(iter.collect::<Vec<_>>(), vec![&5, &3]);
相关用法
- Rust Peekable.peek用法及代码示例
- 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_mut。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。