本文简要介绍rust语言中 Trait core::iter::Iterator
的用法。
用法
pub trait Iterator {
type Item;
fn next(&mut self) -> Option<Self::Item>;
fn size_hint(&self) -> (usize, Option<usize>) { ... }
fn count(self) -> usize where Self: Sized,
{ ... }
fn last(self) -> Option<Self::Item> where Self: Sized,
{ ... }
fn advance_by(&mut self, n: usize) -> Result<(), usize> { ... }
fn nth(&mut self, n: usize) -> Option<Self::Item> { ... }
fn step_by(self, step: usize) -> StepBy<Self>ⓘNotable traits for StepBy<I>impl<I> Iterator for StepBy<I> where I: Iterator, type Item = I::Item; where Self: Sized,
{ ... }
fn chain<U>(self, other: U) -> Chain<Self, U::IntoIter>ⓘNotable traits for Chain<A, B>impl<A, B> Iterator for Chain<A, B> where A: Iterator, B: Iterator<Item = A::Item>, type Item = A::Item; where Self: Sized, U: IntoIterator<Item = Self::Item>,
{ ... }
fn zip<U>(self, other: U) -> Zip<Self, U::IntoIter>ⓘNotable traits for Zip<A, B>impl<A, B> Iterator for Zip<A, B> where A: Iterator, B: Iterator, type Item = (A::Item, B::Item); where Self: Sized, U: IntoIterator,
{ ... }
fn intersperse(self, separator: Self::Item) -> Intersperse<Self>ⓘNotable traits for Intersperse<I>impl<I> Iterator for Intersperse<I> where I: Iterator, I::Item: Clone, type Item = I::Item; where Self: Sized, Self::Item: Clone,
{ ... }
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>ⓘNotable traits for IntersperseWith<I, G>impl<I, G> Iterator for IntersperseWith<I, G> where I: Iterator, G: FnMut() -> I::Item, type Item = I::Item; where Self: Sized, G: FnMut() -> Self::Item,
{ ... }
fn map<B, F>(self, f: F) -> Map<Self, F>ⓘNotable traits for Map<I, F>impl<B, I: Iterator, F> Iterator for Map<I, F> where F: FnMut(I::Item) -> B, type Item = B; where Self: Sized, F: FnMut(Self::Item) -> B,
{ ... }
fn for_each<F>(self, f: F) where Self: Sized, F: FnMut(Self::Item),
{ ... }
fn filter<P>(self, predicate: P) -> Filter<Self, P>ⓘNotable traits for Filter<I, P>impl<I: Iterator, P> Iterator for Filter<I, P> where P: FnMut(&I::Item) -> bool, type Item = I::Item; where Self: Sized, P: FnMut(&Self::Item) -> bool,
{ ... }
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>ⓘNotable traits for FilterMap<I, F>impl<B, I: Iterator, F> Iterator for FilterMap<I, F> where F: FnMut(I::Item) -> Option<B>, type Item = B; where Self: Sized, F: FnMut(Self::Item) -> Option<B>,
{ ... }
fn enumerate(self) -> Enumerate<Self>ⓘNotable traits for Enumerate<I>impl<I> Iterator for Enumerate<I> where I: Iterator, type Item = (usize, <I as Iterator>::Item); where Self: Sized,
{ ... }
fn peekable(self) -> Peekable<Self>ⓘNotable traits for Peekable<I>impl<I: Iterator> Iterator for Peekable<I> type Item = I::Item; where Self: Sized,
{ ... }
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>ⓘNotable traits for SkipWhile<I, P>impl<I: Iterator, P> Iterator for SkipWhile<I, P> where P: FnMut(&I::Item) -> bool, type Item = I::Item; where Self: Sized, P: FnMut(&Self::Item) -> bool,
{ ... }
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>ⓘNotable traits for TakeWhile<I, P>impl<I: Iterator, P> Iterator for TakeWhile<I, P> where P: FnMut(&I::Item) -> bool, type Item = I::Item; where Self: Sized, P: FnMut(&Self::Item) -> bool,
{ ... }
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>ⓘNotable traits for MapWhile<I, P>impl<B, I: Iterator, P> Iterator for MapWhile<I, P> where P: FnMut(I::Item) -> Option<B>, type Item = B; where Self: Sized, P: FnMut(Self::Item) -> Option<B>,
{ ... }
fn skip(self, n: usize) -> Skip<Self>ⓘNotable traits for Skip<I>impl<I> Iterator for Skip<I> where I: Iterator, type Item = <I as Iterator>::Item; where Self: Sized,
{ ... }
fn take(self, n: usize) -> Take<Self>ⓘNotable traits for Take<I>impl<I> Iterator for Take<I> where I: Iterator, type Item = <I as Iterator>::Item; where Self: Sized,
{ ... }
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>ⓘNotable traits for Scan<I, St, F>impl<B, I, St, F> Iterator for Scan<I, St, F> where I: Iterator, F: FnMut(&mut St, I::Item) -> Option<B>, type Item = B; where Self: Sized, F: FnMut(&mut St, Self::Item) -> Option<B>,
{ ... }
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>ⓘNotable traits for FlatMap<I, U, F>impl<I: Iterator, U: IntoIterator, F> Iterator for FlatMap<I, U, F> where F: FnMut(I::Item) -> U, type Item = U::Item; where Self: Sized, U: IntoIterator, F: FnMut(Self::Item) -> U,
{ ... }
fn flatten(self) -> Flatten<Self>ⓘNotable traits for Flatten<I>impl<I, U> Iterator for Flatten<I> where I: Iterator<Item: IntoIterator<IntoIter = U, Item = U::Item>>, U: Iterator, type Item = U::Item; where Self: Sized, Self::Item: IntoIterator,
{ ... }
fn fuse(self) -> Fuse<Self>ⓘNotable traits for Fuse<I>impl<I> Iterator for Fuse<I> where I: Iterator, type Item = <I as Iterator>::Item; where Self: Sized,
{ ... }
fn inspect<F>(self, f: F) -> Inspect<Self, F>ⓘNotable traits for Inspect<I, F>impl<I: Iterator, F> Iterator for Inspect<I, F> where F: FnMut(&I::Item), type Item = I::Item; where Self: Sized, F: FnMut(&Self::Item),
{ ... }
fn by_ref(&mut self) -> &mut Self where Self: Sized,
{ ... }
fn collect<B: FromIterator<Self::Item>>(self) -> B where Self: Sized,
{ ... }
fn partition<B, F>(self, f: F) -> (B, B) where Self: Sized, B: Default + Extend<Self::Item>, F: FnMut(&Self::Item) -> bool,
{ ... }
fn partition_in_place<'a, T: 'a, P>(self, predicate: P) -> usize where Self: Sized + DoubleEndedIterator<Item = &'a mut T>, P: FnMut(&T) -> bool,
{ ... }
fn is_partitioned<P>(self, predicate: P) -> bool where Self: Sized, P: FnMut(Self::Item) -> bool,
{ ... }
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R where Self: Sized, F: FnMut(B, Self::Item) -> R, R: Try<Output = B>,
{ ... }
fn try_for_each<F, R>(&mut self, f: F) -> R where Self: Sized, F: FnMut(Self::Item) -> R, R: Try<Output = ()>,
{ ... }
fn fold<B, F>(self, init: B, f: F) -> B where Self: Sized, F: FnMut(B, Self::Item) -> B,
{ ... }
fn reduce<F>(self, f: F) -> Option<Self::Item> where Self: Sized, F: FnMut(Self::Item, Self::Item) -> Self::Item,
{ ... }
fn all<F>(&mut self, f: F) -> bool where Self: Sized, F: FnMut(Self::Item) -> bool,
{ ... }
fn any<F>(&mut self, f: F) -> bool where Self: Sized, F: FnMut(Self::Item) -> bool,
{ ... }
fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where Self: Sized, P: FnMut(&Self::Item) -> bool,
{ ... }
fn find_map<B, F>(&mut self, f: F) -> Option<B> where Self: Sized, F: FnMut(Self::Item) -> Option<B>,
{ ... }
fn try_find<F, R, E>(&mut self, f: F) -> Result<Option<Self::Item>, E> where Self: Sized, F: FnMut(&Self::Item) -> R, R: Try<Output = bool>, R: Try<Residual = Result<Infallible, E>>,
{ ... }
fn position<P>(&mut self, predicate: P) -> Option<usize> where Self: Sized, P: FnMut(Self::Item) -> bool,
{ ... }
fn rposition<P>(&mut self, predicate: P) -> Option<usize> where P: FnMut(Self::Item) -> bool, Self: Sized + ExactSizeIterator + DoubleEndedIterator,
{ ... }
fn max(self) -> Option<Self::Item> where Self: Sized, Self::Item: Ord,
{ ... }
fn min(self) -> Option<Self::Item> where Self: Sized, Self::Item: Ord,
{ ... }
fn max_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item> where Self: Sized, F: FnMut(&Self::Item) -> B,
{ ... }
fn max_by<F>(self, compare: F) -> Option<Self::Item> where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Ordering,
{ ... }
fn min_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item> where Self: Sized, F: FnMut(&Self::Item) -> B,
{ ... }
fn min_by<F>(self, compare: F) -> Option<Self::Item> where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Ordering,
{ ... }
fn rev(self) -> Rev<Self>ⓘNotable traits for Rev<I>impl<I> Iterator for Rev<I> where I: DoubleEndedIterator, type Item = <I as Iterator>::Item; where Self: Sized + DoubleEndedIterator,
{ ... }
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB) where FromA: Default + Extend<A>, FromB: Default + Extend<B>, Self: Sized + Iterator<Item = (A, B)>,
{ ... }
fn copied<'a, T: 'a>(self) -> Copied<Self>ⓘNotable traits for Copied<I>impl<'a, I, T: 'a> Iterator for Copied<I> where I: Iterator<Item = &'a T>, T: Copy, type Item = T; where Self: Sized + Iterator<Item = &'a T>, T: Copy,
{ ... }
fn cloned<'a, T: 'a>(self) -> Cloned<Self>ⓘNotable traits for Cloned<I>impl<'a, I, T: 'a> Iterator for Cloned<I> where I: Iterator<Item = &'a T>, T: Clone, type Item = T; where Self: Sized + Iterator<Item = &'a T>, T: Clone,
{ ... }
fn cycle(self) -> Cycle<Self>ⓘNotable traits for Cycle<I>impl<I> Iterator for Cycle<I> where I: Clone + Iterator, type Item = <I as Iterator>::Item; where Self: Sized + Clone,
{ ... }
fn sum<S>(self) -> S where Self: Sized, S: Sum<Self::Item>,
{ ... }
fn product<P>(self) -> P where Self: Sized, P: Product<Self::Item>,
{ ... }
fn cmp<I>(self, other: I) -> Ordering where I: IntoIterator<Item = Self::Item>, Self::Item: Ord, Self: Sized,
{ ... }
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, I::Item) -> Ordering,
{ ... }
fn partial_cmp<I>(self, other: I) -> Option<Ordering> where I: IntoIterator, Self::Item: PartialOrd<I::Item>, Self: Sized,
{ ... }
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering> where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, I::Item) -> Option<Ordering>,
{ ... }
fn eq<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialEq<I::Item>, Self: Sized,
{ ... }
fn eq_by<I, F>(self, other: I, eq: F) -> bool where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, I::Item) -> bool,
{ ... }
fn ne<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialEq<I::Item>, Self: Sized,
{ ... }
fn lt<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<I::Item>, Self: Sized,
{ ... }
fn le<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<I::Item>, Self: Sized,
{ ... }
fn gt<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<I::Item>, Self: Sized,
{ ... }
fn ge<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<I::Item>, Self: Sized,
{ ... }
fn is_sorted(self) -> bool where Self: Sized, Self::Item: PartialOrd,
{ ... }
fn is_sorted_by<F>(self, compare: F) -> bool where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,
{ ... }
fn is_sorted_by_key<F, K>(self, f: F) -> bool where Self: Sized, F: FnMut(Self::Item) -> K, K: PartialOrd,
{ ... }
}
处理迭代器的接口。
这是迭代器的主要特征。有关迭代器概念的更多信息,请参阅module-level 文档。特别是,您可能想知道如何实现Iterator
.
相关用法
- Rust Iterator.skip_while用法及代码示例
- Rust Iterator.max_by_key用法及代码示例
- Rust Iterator.is_sorted用法及代码示例
- Rust Iterator.cmp用法及代码示例
- Rust Iterator.is_partitioned用法及代码示例
- Rust Iterator.intersperse用法及代码示例
- Rust Iterator.scan用法及代码示例
- Rust Iterator.min用法及代码示例
- Rust Iterator.find_map用法及代码示例
- Rust Iterator.peekable用法及代码示例
- Rust Iterator.rev用法及代码示例
- Rust Iterator.product用法及代码示例
- Rust Iterator.any用法及代码示例
- Rust Iterator.max用法及代码示例
- Rust Iterator.by_ref用法及代码示例
- Rust Iterator.min_by用法及代码示例
- Rust Iterator.copied用法及代码示例
- Rust Iterator.inspect用法及代码示例
- Rust Iterator.min_by_key用法及代码示例
- Rust Iterator.intersperse_with用法及代码示例
- Rust Iterator.flat_map用法及代码示例
- Rust Iterator.ge用法及代码示例
- Rust Iterator.gt用法及代码示例
- Rust Iterator.partial_cmp_by用法及代码示例
- Rust Iterator.skip用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Trait core::iter::Iterator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。