learning-rust.github.io icon indicating copy to clipboard operation
learning-rust.github.io copied to clipboard

Vector: Creating empty vectors returns an error

Open palash25 opened this issue 5 years ago • 1 comments

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?

palash25 avatar May 08 '19 19:05 palash25

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.

vks avatar Apr 09 '21 21:04 vks