struct Tree<T> {
leaf: Vec<?>
}
fn main() {
let fuji = Tree { leaf: vec![1, 2, [[3, 4, 5], 6, [7, 8, 9]] };
}
我不知道应该在Vec<>
中添加什么内容,以便上面的代码可以运行。
答案 0 :(得分:2)
Rust Vec
tor写成Vec<T>
,这意味着它的每个元素都必须是T
类型。如果你需要一个向量向量,这是可能的 - 那么它是Vec<Vec<T>>
(现在每个元素都是Vec<T>
。
在你的代码中写道:
vec![1, 2, [[3, 4, 5], 6, [7, 8, 9]]
尝试创建包含整数和固定长度(3)数组的向量,该数组由整数和整数的固定长度(3)数组组成。呼!这远不是Vec
数据类型所需的同质性。
您可以创建这样的矢量矢量:
let v: Vec<Vec<i32>> = vec![vec![1,2,3], vec![4,5], vec![6]];
由于向量(与数组不同)类型没有绑定到它的长度,因此这是Vec
个有效Vec
的{{1}} tor,反过来,有效,因为它们只包含整数(i32
)。
我建议浏览The Rust Book,这是基本Rust知识的最佳来源。