rust中变量自动推断问题

在阅读《An I/O Project: Building a Command Line Program》 这一章的时候遇到了个问题。文章里给出了这样一个例子: use std::env; fn main() { let args: Vec<String> = env::args().collect(); //let args = env::args().collect(); dbg!(args); } 高亮的那行是当时手敲代码,省略了类型。运行cargo build发现编译不通过,报如下错误: error[E0283]: type annotations needed --> src/main.rs:5:9 | 5 | let args = env::args().collect(); | ^^^^ ------- type must be known at this point | = note: cannot satisfy `_: FromIterator<String>` note: required by a bound in `collect` --> /Users/XXXXXXXX/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:1999:19 | 1999 | fn collect<B: FromIterator<Self::Item>>(self) -> B | ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Iterator::collect` help: consider giving `args` an explicit type | 5 | let args: Vec<_> = env::args()....

June 21, 2024 · akawhy