为什么这不起作用?我正在尝试创建一个空列表。
use std::collections::LinkedList;
fn main() {
let mut list = LinkedList::new();
}
答案 0 :(得分:1)
错误是:
error: unable to infer enough type information about `_`; type annotations or generic parameter binding required [E0282]
let mut list = LinkedList::new();
^~~~~~~~~~~~~~~
LinkedList
在其包含的元素类型上进行参数化,但此代码中没有任何内容告诉编译器 类型是什么。
在一个更完整的程序中,通常会推断出这种类型,因为你对集合做了一些事情,比如在其中插入一个值:
use std::collections::LinkedList;
fn main() {
let mut list = LinkedList::new();
list.push_front("hello");
}
您还可以明确指定类型:
use std::collections::LinkedList;
fn main() {
let mut list = LinkedList::<bool>::new();
// OR
let mut list: LinkedList<bool> = LinkedList::new();
}
虽然类型推断是首选解决方案。