learning-rust.github.io
learning-rust.github.io copied to clipboard
Vector: Creating empty vectors returns an error
In the very first example in the Vectors chapter
let mut a = Vec::new(); //1.With new() keyword
let mut b = vec![]; //2.Using the vec! macro
when I compile just these statements I get an error saying
error[E0282]: type annotations needed
--> a.rs:19:15
|
19 | let mut bv = vec![]; //2.Using the vec! macro
| ------ ^^^^^^ cannot infer type for `T`
| |
| consider giving `bv` a type
|
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
Shouldn't this be documented in the guide?
I agree it would be nice to add a comment. However, the compiler advice is very clear in this case?
If you later push an element into the vector, the type annotation is usually not necessary, and you don't get this error.