本文简要介绍rust语言中 Trait std::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 { ... }
fn last(self) -> Option<Self::Item> { ... }
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 as Iterator>::Item; { ... }
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>ⓘNotable traits for Chain<A, B>impl<A, B> Iterator for Chain<A, B> where A: Iterator, B: Iterator<Item = <A as Iterator>::Item>, type Item = <A as Iterator>::Item; where U: IntoIterator<Item = Self::Item>,
{ ... }
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>ⓘNotable traits for Zip<A, B>impl<A, B> Iterator for Zip<A, B> where A: Iterator, B: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item); where 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 as Iterator>::Item: Clone, type Item = <I as Iterator>::Item; where 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 as Iterator>::Item, type Item = <I as Iterator>::Item; where G: FnMut() -> Self::Item,
{ ... }
fn map<B, F>(self, f: F) -> Map<Self, F>ⓘNotable traits for Map<I, F>impl<B, I, F> Iterator for Map<I, F> where I: Iterator, F: FnMut(<I as Iterator>::Item) -> B, type Item = B; where F: FnMut(Self::Item) -> B,
{ ... }
fn for_each<F>(self, f: F) where F: FnMut(Self::Item),
{ ... }
fn filter<P>(self, predicate: P) -> Filter<Self, P>ⓘNotable traits for Filter<I, P>impl<I, P> Iterator for Filter<I, P> where I: Iterator, P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item; where 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, F> Iterator for FilterMap<I, F> where I: Iterator, F: FnMut(<I as Iterator>::Item) -> Option<B>, type Item = B; where 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); { ... }
fn peekable(self) -> Peekable<Self>ⓘNotable traits for Peekable<I>impl<I> Iterator for Peekable<I> where I: Iterator, type Item = <I as Iterator>::Item; { ... }
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>ⓘNotable traits for SkipWhile<I, P>impl<I, P> Iterator for SkipWhile<I, P> where I: Iterator, P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item; where P: FnMut(&Self::Item) -> bool,
{ ... }
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>ⓘNotable traits for TakeWhile<I, P>impl<I, P> Iterator for TakeWhile<I, P> where I: Iterator, P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item; where 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, P> Iterator for MapWhile<I, P> where I: Iterator, P: FnMut(<I as Iterator>::Item) -> Option<B>, type Item = B; where 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; { ... }
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; { ... }
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 as Iterator>::Item) -> Option<B>, type Item = B; where 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, U, F> Iterator for FlatMap<I, U, F> where I: Iterator, U: IntoIterator, F: FnMut(<I as Iterator>::Item) -> U, type Item = <U as IntoIterator>::Item; where 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, U: Iterator, <I as Iterator>::Item: IntoIterator, <<I as Iterator>::Item as IntoIterator>::IntoIter == U, <<I as Iterator>::Item as IntoIterator>::Item == <U as Iterator>::Item, type Item = <U as Iterator>::Item; where 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; { ... }
fn inspect<F>(self, f: F) -> Inspect<Self, F>ⓘNotable traits for Inspect<I, F>impl<I, F> Iterator for Inspect<I, F> where I: Iterator, F: FnMut(&<I as Iterator>::Item), type Item = <I as Iterator>::Item; where F: FnMut(&Self::Item),
{ ... }
fn by_ref(&mut self) -> &mut Self { ... }
fn collect<B>(self) -> B where B: FromIterator<Self::Item>,
{ ... }
fn partition<B, F>(self, f: F) -> (B, B) where B: Default + Extend<Self::Item>, F: FnMut(&Self::Item) -> bool,
{ ... }
fn partition_in_place<'a, T, P>(self, predicate: P) -> usize where T: 'a, Self: DoubleEndedIterator<Item = &'a mut T>, P: FnMut(&T) -> bool,
{ ... }
fn is_partitioned<P>(self, predicate: P) -> bool where P: FnMut(Self::Item) -> bool,
{ ... }
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R where F: FnMut(B, Self::Item) -> R, R: Try<Output = B>,
{ ... }
fn try_for_each<F, R>(&mut self, f: F) -> R where F: FnMut(Self::Item) -> R, R: Try<Output = ()>,
{ ... }
fn fold<B, F>(self, init: B, f: F) -> B where F: FnMut(B, Self::Item) -> B,
{ ... }
fn reduce<F>(self, f: F) -> Option<Self::Item> where F: FnMut(Self::Item, Self::Item) -> Self::Item,
{ ... }
fn all<F>(&mut self, f: F) -> bool where F: FnMut(Self::Item) -> bool,
{ ... }
fn any<F>(&mut self, f: F) -> bool where F: FnMut(Self::Item) -> bool,
{ ... }
fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where P: FnMut(&Self::Item) -> bool,
{ ... }
fn find_map<B, F>(&mut self, f: F) -> Option<B> where F: FnMut(Self::Item) -> Option<B>,
{ ... }
fn try_find<F, R, E>(&mut self, f: F) -> Result<Option<Self::Item>, E> where F: FnMut(&Self::Item) -> R, R: Try<Output = bool, Residual = Result<Infallible, E>> + Try,
{ ... }
fn position<P>(&mut self, predicate: P) -> Option<usize> where P: FnMut(Self::Item) -> bool,
{ ... }
fn rposition<P>(&mut self, predicate: P) -> Option<usize> where P: FnMut(Self::Item) -> bool, Self: ExactSizeIterator + DoubleEndedIterator,
{ ... }
fn max(self) -> Option<Self::Item> where Self::Item: Ord,
{ ... }
fn min(self) -> Option<Self::Item> where Self::Item: Ord,
{ ... }
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item> where B: Ord, F: FnMut(&Self::Item) -> B,
{ ... }
fn max_by<F>(self, compare: F) -> Option<Self::Item> where F: FnMut(&Self::Item, &Self::Item) -> Ordering,
{ ... }
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item> where B: Ord, F: FnMut(&Self::Item) -> B,
{ ... }
fn min_by<F>(self, compare: F) -> Option<Self::Item> where 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: DoubleEndedIterator,
{ ... }
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB) where FromA: Default + Extend<A>, FromB: Default + Extend<B>, Self: Iterator<Item = (A, B)>,
{ ... }
fn copied<'a, T>(self) -> Copied<Self>ⓘNotable traits for Copied<I>impl<'a, I, T> Iterator for Copied<I> where T: 'a + Copy, I: Iterator<Item = &'a T>, type Item = T; where T: 'a + Copy, Self: Iterator<Item = &'a T>,
{ ... }
fn cloned<'a, T>(self) -> Cloned<Self>ⓘNotable traits for Cloned<I>impl<'a, I, T> Iterator for Cloned<I> where T: 'a + Clone, I: Iterator<Item = &'a T>, type Item = T; where T: 'a + Clone, Self: Iterator<Item = &'a T>,
{ ... }
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: Clone,
{ ... }
fn sum<S>(self) -> S where S: Sum<Self::Item>,
{ ... }
fn product<P>(self) -> P where P: Product<Self::Item>,
{ ... }
fn cmp<I>(self, other: I) -> Ordering where I: IntoIterator<Item = Self::Item>, Self::Item: Ord,
{ ... }
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering where I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,
{ ... }
fn partial_cmp<I>(self, other: I) -> Option<Ordering> where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>,
{ ... }
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering> where I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
{ ... }
fn eq<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialEq<<I as IntoIterator>::Item>,
{ ... }
fn eq_by<I, F>(self, other: I, eq: F) -> bool where I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,
{ ... }
fn ne<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialEq<<I as IntoIterator>::Item>,
{ ... }
fn lt<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>,
{ ... }
fn le<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>,
{ ... }
fn gt<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>,
{ ... }
fn ge<I>(self, other: I) -> bool where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>,
{ ... }
fn is_sorted(self) -> bool where Self::Item: PartialOrd<Self::Item>,
{ ... }
fn is_sorted_by<F>(self, compare: F) -> bool where F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,
{ ... }
fn is_sorted_by_key<F, K>(self, f: F) -> bool where F: FnMut(Self::Item) -> K, K: PartialOrd<K>,
{ ... }
}
处理迭代器的接口。
这是迭代器的主要特征。有关迭代器概念的更多信息,请参阅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 std::iter::Iterator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。