FromIterator
FromIterator
permite que vocĂȘ construa uma coleção a partir de um Iterator
.
fn main() { let primes = vec![2, 3, 5, 7]; let prime_squares = primes.into_iter().map(|p| p * p).collect::<Vec<_>>(); println!("prime_squares: {prime_squares:?}"); }
This slide should take about 5 minutes.
Iterator
implementa
fn collect<B>(self) -> B
where
B: FromIterator<Self::Item>,
Self: Sized
Existem duas maneiras de especificar B
para este método:
- Com o "turbofish":
some_iterator.collect::<COLLECTION_TYPE>()
, como mostrado. O shorthand_
usado aqui permite que o Rust infira o tipo dos elementos doVec
. - Com inferĂȘncia de tipo:
let prime_squares: Vec<_> = some_iterator.collect()
. Reescreva o exemplo para usar esta forma.
Hå implementaçÔes båsicas de FromIterator
para Vec
, HashMap
, etc. Também existem implementaçÔes mais especializadas que permitem fazer coisas legais, como converter um Iterator<Item = Result<V, E>>
em um Result<Vec<V>, E>
.