2015-05-29 12 views
5

Guardando attraverso la documentazione di Rust, ho visto solo il seguente metodo diSpingere un iteratore ad un vettore (o qualsiasi raccolta)

fn push_all(&mut self, other: &[T]) 

a spingere più valori a una già esistente Vec. Tuttavia, se ho un iteratore, penso che non sia efficiente usare: vector.push_all(it.collect().as_ref()). C'è un modo per farcela?

risposta

8

È possibile utilizzare Vec's extend method. extend accetta un valore di qualsiasi tipo che implementa IntoIterator (che include tutti i tipi di iteratore) ed estende lo Vec da tutti gli elementi restituiti dall'iteratore.

Poiché extend appartiene al tratto Extend, funziona anche per molti altri tipi di raccolta.

Problemi correlati