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


Rust Iterator.intersperse用法及代碼示例


本文簡要介紹rust語言中 std::iter::Iterator.intersperse 的用法。

用法

fn intersperse(self, separator: Self::Item) -> Intersperse<Self> where    Self::Item: Clone,

創建一個新的迭代器,它將 separator 的副本放置在原始迭代器的相鄰項之間。

如果 separator 沒有實現 Clone 或每次都需要計算,請使用 intersperse_with

例子

基本用法:

#![feature(iter_intersperse)]

let mut a = [0, 1, 2].iter().intersperse(&100);
assert_eq!(a.next(), Some(&0));   // The first element from `a`.
assert_eq!(a.next(), Some(&100)); // The separator.
assert_eq!(a.next(), Some(&1));   // The next element from `a`.
assert_eq!(a.next(), Some(&100)); // The separator.
assert_eq!(a.next(), Some(&2));   // The last element from `a`.
assert_eq!(a.next(), None);       // The iterator is finished.

intersperse 對於使用公共元素連接迭代器的項非常有用:

#![feature(iter_intersperse)]

let hello = ["Hello", "World", "!"].iter().copied().intersperse(" ").collect::<String>();
assert_eq!(hello, "Hello World !");

相關用法


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