diff --git a/src/ch08-01-vectors.md b/src/ch08-01-vectors.md index 3e5a98f..2cbcdaf 100644 --- a/src/ch08-01-vectors.md +++ b/src/ch08-01-vectors.md @@ -118,7 +118,7 @@ vector 只能储存相同类型的值。这是很不方便的;绝对会有需 示例 8-9:定义一个枚举,以便能在 vector 中存放不同类型的数据 -Rust 在编译时就必须准确的知道 vector 中类型的原因在于它需要知道储存每个元素到底需要多少内存。第二个好处是可以准确的知道这个 vector 中允许什么类型。如果 Rust 允许 vector 存放任意类型,那么当对 vector 元素执行操作时一个或多个类型的值就有可能会造成错误。使用枚举外加 `match` 意味着 Rust 能在编译时就保证总是会处理所有可能的情况,正如第六章讲到的那样。 +Rust 在编译时必须确切知道 vector 中的类型,这样它才能确定在堆上需要为每个元素分配多少内存。我们还必须明确这个 vector 中允许的类型。如果 Rust 允许 vector 存储任意类型,那么可能会因为一个或多个类型在对 vector 元素执行操作时导致(类型相关)错误。使用枚举加上 `match` 表达式意味着 Rust 会在编译时确保每种可能的情况都得到处理,正如第六章讲到的那样。 如果在编写程序时不能确切无遗地知道运行时会储存进 vector 的所有类型,枚举技术就行不通了。相反,你可以使用 trait 对象,第十七章会讲到它。