【发布时间】:2017-01-26 08:42:46
【问题描述】:
struct Tree<T> {
leaf: Vec<?>
}
fn main() {
let fuji = Tree { leaf: vec![1, 2, [[3, 4, 5], 6, [7, 8, 9]] };
}
我不知道我应该在Vec<> 中添加什么以便上面的代码可以运行。
【问题讨论】:
-
这行不通。出于许多原因(其中至少是您的实际分配无论如何都不会编译)。如果您完全删除
struct并尝试将您的尝试分配给(我认为是锯齿状的?)向量,您会看到即使您让编译器为您推断类型,编译器也不会允许它。例如:let fuji = vec![1, 2, [[3, 4, 5], 6, [7, 8, 9]]];。我建议 working your way through the Rust Book 更好地了解 Rust 和向量在 Rust 中可以做什么。 -
除了我上面的评论:在 Rust 中构建树状结构不是一件容易的事情。如果您对 Rust 的一般语法/使用感到不舒服,我绝对建议您不要尝试实现任何严重依赖节点之间关系的树结构。至少在您牢牢掌握所有权、引用以及如何在 Rust 中使用不安全代码之前。
-
@S 谢谢你的建议。看来我是用python的方式写Rust...
-
@SimonWhitehead a tree 在 Rust 中很好用。 图表很难。