@@ -571,16 +571,22 @@ pub trait Iterator {
571
571
572
572
/// Places a copy of `separator` between all elements.
573
573
///
574
+ /// In case the separator does not implement [`Clone`] or needs to be
575
+ /// computed every time, use [`intersperse_with`].
576
+ ///
574
577
/// # Examples
575
578
///
576
579
/// Basic usage:
577
580
///
578
581
/// ```
579
582
/// #![feature(iter_intersperse)]
580
583
///
581
- /// let hello = ["Hello", "World"].iter().copied().intersperse(" ").collect::<String>();
582
- /// assert_eq!(hello, "Hello World");
584
+ /// let hello = ["Hello", "World", "!" ].iter().copied().intersperse(" ").collect::<String>();
585
+ /// assert_eq!(hello, "Hello World ! ");
583
586
/// ```
587
+ ///
588
+ /// [`Clone`]: crate::clone::Clone
589
+ /// [`intersperse_with`]: Iterator::intersperse_with
584
590
#[ inline]
585
591
#[ unstable( feature = "iter_intersperse" , reason = "recently added" , issue = "79524" ) ]
586
592
fn intersperse ( self , separator : Self :: Item ) -> Intersperse < Self >
@@ -600,11 +606,13 @@ pub trait Iterator {
600
606
/// ```
601
607
/// #![feature(iter_intersperse)]
602
608
///
603
- /// let src = ["Hello", "to", "all", "people"].iter().copied();
604
- /// let mut separator = [" ❤️ ", " 😀 "].iter().copied().cycle();
609
+ /// let src = ["Hello", "to", "all", "people", "!!"].iter().copied();
610
+ ///
611
+ /// let mut happy_emojis = [" ❤️ ", " 😀 "].iter().copied();
612
+ /// let separator = || happy_emojis.next().unwrap_or(" 🦀 ");
605
613
///
606
- /// let result = src.intersperse_with(|| separator.next().unwrap() ).collect::<String>();
607
- /// assert_eq!(result, "Hello ❤️ to 😀 all ❤️ people");
614
+ /// let result = src.intersperse_with(separator).collect::<String>();
615
+ /// assert_eq!(result, "Hello ❤️ to 😀 all 🦀 people 🦀 !! ");
608
616
/// ```
609
617
#[ inline]
610
618
#[ unstable( feature = "iter_intersperse" , reason = "recently added" , issue = "79524" ) ]
0 commit comments