How can I initialize new Vector using the vec!
macro and automatically fill it up with values from an existing array? Here's the code example:
let a = [10, 20, 30, 40]; // a plain array
let v = vec![??]; // TODO: declare your vector here with the macro for vectors
What can I fill in (syntax wise) instead of the ???
characters?
Since Vec<T>
impls From<[T; N]>
, it can be created from an array by using the From::from()
method or the Into::into()
method:
let v = Vec::from(a);
// Or
let v: Vec<_> = a.into(); // Sometimes you can get rid of the type
// annotation if the compiler can infer it
The vec![]
macro is not intended for that; it is intended for creating Vec
s from scratch, like array literals. Instead of creating an array and converting it, you could use the vec![]
macro:
let v = vec![10, 20, 30, 40];