`Vec<T>` 是什么意思?
What does `Vec<T>` mean?
The Rust Book 有时会说 "here we want a Vec<T>
".
这除了 "a thing of type Vector?" 之外还有什么意思吗 另外,你怎么发音 - "vec tee"?
Vec<T>
是一个泛型类型,表示一个向量,其中每个元素的类型都是 T
。有关详细信息,请参阅 vectors and generics 部分。
Vec<T>
表示 "A vector of items. The items are of type T
"。让我们稍微解压一下...
A vector 是一种包含零个或多个相同类型项的数据结构。这些项目有一个顺序,您可以通过索引(0、1、...)访问这些项目。您可以添加和删除项目。项目本身存储在连续的堆分配区域中。
T
是一个常见的 通用类型参数 。类型参数允许您编写对特定类型进行抽象的代码,而无需关心该类型是什么。在这个例子中,我们可以创建一个 MyThing
与 any kind 的内在价值:
struct MyThing<T> {
thing: T,
}
这里,T
是一个类型参数,因为它包含在<>
中。它不一定是 T
,它可以是 S
或 Z
或 MyLittlePony
。但是,T
用作 "type" 的 shorthand 是很常见的。使用单字母名称以避免与具体类型名称冲突也很常见。
作为人类,我们有时会在术语方面有些拘谨,使用 T
的方式与我们在数学中使用 x
或在编程中使用 foo
的方式相同- 我们还不想具体说明的事情。
我会大声念成 "vec tee" 或 "a vec of tee",但这很主观。
The Rust Book 有时会说 "here we want a Vec<T>
".
这除了 "a thing of type Vector?" 之外还有什么意思吗 另外,你怎么发音 - "vec tee"?
Vec<T>
是一个泛型类型,表示一个向量,其中每个元素的类型都是 T
。有关详细信息,请参阅 vectors and generics 部分。
Vec<T>
表示 "A vector of items. The items are of type T
"。让我们稍微解压一下...
A vector 是一种包含零个或多个相同类型项的数据结构。这些项目有一个顺序,您可以通过索引(0、1、...)访问这些项目。您可以添加和删除项目。项目本身存储在连续的堆分配区域中。
T
是一个常见的 通用类型参数 。类型参数允许您编写对特定类型进行抽象的代码,而无需关心该类型是什么。在这个例子中,我们可以创建一个 MyThing
与 any kind 的内在价值:
struct MyThing<T> {
thing: T,
}
这里,T
是一个类型参数,因为它包含在<>
中。它不一定是 T
,它可以是 S
或 Z
或 MyLittlePony
。但是,T
用作 "type" 的 shorthand 是很常见的。使用单字母名称以避免与具体类型名称冲突也很常见。
作为人类,我们有时会在术语方面有些拘谨,使用 T
的方式与我们在数学中使用 x
或在编程中使用 foo
的方式相同- 我们还不想具体说明的事情。
我会大声念成 "vec tee" 或 "a vec of tee",但这很主观。