我是 Rust 的新手。当我阅读The Rust Programming Language 的第 15 章时,我不明白为什么应该Box在递归数据结构中使用es 而不是常规引用。这本书的 15.1 解释了需要间接来避免无限大小的结构,但没有解释为什么要使用Box.
#[derive(Debug)]
enum FunctionalList<'a> {
Cons(u32, &'a FunctionalList<'a>),
Nil,
}
use FunctionalList::{Cons, Nil};
fn main() {
let list = Cons(1, &Cons(2, &Cons(3, &Nil)));
println!("{:?}", list);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码编译并生成所需的输出。似乎使用FunctionalList在堆栈上存储少量数据效果很好。这段代码会引起麻烦吗?
rust ×1