mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2026-08-19 12:43:28 +08:00
Updated src/common_collections/vectors.md'.
This commit is contained in:
@@ -202,16 +202,14 @@ error: could not compile `vector_demo` (bin "vector_demo") due to 1 previous err
|
||||
|
||||
**清单 8-9**:定义一个枚举以在一个矢量值中存储不同类型的值
|
||||
|
||||
|
||||
Rust 需要在编译时知道哪些类型将在矢量值中,以便他准确地知道将需要堆上的多少内存来存储各个元素。我们还必须显式指出该矢量中允许哪些类型。若 Rust 允许矢量值存储任何类型,那么一种或多种类型将可能造成对矢量值元素执行的操作中的错误。使用枚举加上 `match` 表达式,意味着 Rust 将在编译时确保,每种可能情形都得以处理,正如第 6 章中曾讨论的那样。
|
||||
Rust 需要在编译时知道哪些类型将在矢量值中,以便他准确地知道将需要堆上的多少内存来存储各个元素。我们还必须显式指出该矢量中允许哪些类型。若 Rust 允许矢量值存储任何类型,那么一种或多种类型将可能造成对矢量值元素执行的操作中的错误。使用枚举加上 `match` 表达式,意味着 Rust 将在编译时确保每种可能情形都得以处理,正如第 6 章中曾讨论的那样。
|
||||
|
||||
当咱们不知道程序在运行时将获得的,要存储在矢量中的详尽类型集时,这种枚举技巧将不起作用。相反,咱们可以使用 [特质对象](../oop/trait_objects.md),我们将在第 18 章中介绍他。
|
||||
|
||||
现在我们已经讨论了使用矢量值的一些最常见方式,请务必查看 [API 文档](https://doc.rust-lang.org/std/vec/struct.Vec.html),了解由标准库定义在 `Vec<T>` 上的所有实用方法。例如,除了 `push` 方法外,`pop` 方法会移除并返回最后一个元素。
|
||||
|
||||
|
||||
|
||||
## 弃用矢量会弃用其元素
|
||||
## 弃用矢量值会弃用其元素
|
||||
|
||||
与任何其他 `struct` 一样,矢量值在其超出作用域时也会被释放,如下清单 8-10 中注解的那样。
|
||||
|
||||
@@ -230,7 +228,7 @@ Rust 需要在编译时知道哪些类型将在矢量值中,以便他准确地
|
||||
|
||||
当这个矢量值被弃用时,其所有内容也会被弃用,这意味着他保存的整数将被清理。借用检查器确保到矢量值内容的任何引用都只会在该矢量值本身有效时被使用。
|
||||
|
||||
我们来继续讨论下一个集合类型: `String`!
|
||||
我们来继续讨论下一种集合类型: `String`!
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user