diff --git a/src/ch15-01-box.md b/src/ch15-01-box.md index 18b12c8..148ffd9 100644 --- a/src/ch15-01-box.md +++ b/src/ch15-01-box.md @@ -33,7 +33,7 @@ ### Box 允许创建递归类型 -**递归类型**(_recursive type_)的值可以拥有另一个同类型的值作为其自身的一部分。但是这会产生一个问题,因为 Rust 需要在编译时知道类型占用多少空间。递归类型的值嵌套理论上可以无限地进行下去,所以 Rust 不知道递归类型需要多少空间。因为 box 有一个已知的大小,所以通过在循环类型定义中插入 box,就可以创建递归类型了。 +**递归类型**(_recursive type_)的值可以拥有另一个同类型的值作为其自身的一部分。但是这会产生一个问题,因为 Rust 需要在编译时知道类型占用多少空间。递归类型的值嵌套理论上可以无限地进行下去,所以 Rust 不知道递归类型需要多少空间。因为 box 有一个已知的大小,所以通过在递归类型定义中插入 box,就可以创建递归类型了。 作为一个递归类型的例子,让我们探索一下 _cons list_。这是一个函数式编程语言中常见的数据类型,来展示这个(递归类型)概念。除了递归之外,我们将要定义的 cons list 类型相当简单,所以这个例子中的概念,在任何遇到更为复杂的涉及到递归类型的场景时都很实用。