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


Rust Peekable.peek_mut用法及代碼示例


本文簡要介紹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-lang.org大神的英文原創作品 std::iter::Peekable.peek_mut。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。