I want to take the x first and last elements from a vector and concatenate them. I have the following code:
fn main() {
let v = (0u64 .. 10).collect::
You should collect()
the results of the take()
and extend()
them with the collect()
ed results of skip()
:
let mut p1 = v.iter().take(3).collect::>();
let p2 = v.iter().skip(l-3);
p1.extend(p2);
println!("{:?}", p1);
Edit: as Neikos said, you don't even need to collect the result of skip()
, since extend()
accepts arguments implementing IntoIterator
(which Skip
does, as it is an Iterator
).
Edit 2: your numbers are a bit off, though; in order to get 1, 2, 3, 8, 9, 10
you should declare v
as follows:
let v = (1u64 .. 11).collect::>();
Since the Range is left-closed and right-open.