diff options
| author | cameron <cameron.studdstreet@gmail.com> | 2022-01-27 06:47:52 +0000 |
|---|---|---|
| committer | cameron <cameron.studdstreet@gmail.com> | 2022-01-27 06:47:52 +0000 |
| commit | f27758e8d7dae117d7989dc555823fc75426fd3e (patch) | |
| tree | 553f36a6d108170dd618636f5008754108ec97c8 | |
| parent | 02c9e73e6ca7e2bd444d39182f8dee7e2ba4a609 (diff) | |
| download | rust-f27758e8d7dae117d7989dc555823fc75426fd3e.tar.gz rust-f27758e8d7dae117d7989dc555823fc75426fd3e.zip | |
mention std::iter::zip in Iterator::zip docs
| -rw-r--r-- | library/core/src/iter/traits/iterator.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/library/core/src/iter/traits/iterator.rs b/library/core/src/iter/traits/iterator.rs index 1d947297463..1132409715c 100644 --- a/library/core/src/iter/traits/iterator.rs +++ b/library/core/src/iter/traits/iterator.rs @@ -514,9 +514,40 @@ pub trait Iterator { /// assert_eq!((2, 'o'), enumerate[2]); /// assert_eq!((2, 'o'), zipper[2]); /// ``` + /// If both iterators have roughly equivalent syntax, it may me more readable to use [`zip`]: + /// ``` + /// # use std::iter::zip; + /// let a = [1, 2, 3]; + /// let b = [2, 3, 4]; + /// + /// let mut zipped = zip( + /// a.into_iter().map(|x| x * 2).skip(1), + /// b.into_iter().map(|x| x * 2).skip(1), + /// ); + /// + /// assert_eq!(zipped.next(), Some((4, 6))); + /// assert_eq!(zipped.next(), Some((6, 8))); + /// assert_eq!(zipped.next(), None); + /// ``` + /// compared to: + /// ``` + /// let a = [1, 2, 3]; + /// let b = [2, 3, 4]; + /// + /// let mut zipped = a + /// .into_iter() + /// .map(|x| x * 2) + /// .skip(1) + /// .zip(b.into_iter().map(|x| x * 2).skip(1)); + /// + /// assert_eq!(zipped.next(), Some((4, 6))); + /// assert_eq!(zipped.next(), Some((6, 8))); + /// assert_eq!(zipped.next(), None); + /// ``` /// /// [`enumerate`]: Iterator::enumerate /// [`next`]: Iterator::next + /// [`zip`]: crate::iter::zip #[inline] #[stable(feature = "rust1", since = "1.0.0")] fn zip<U>(self, other: U) -> Zip<Self, U::IntoIter> |
