Rust 标准库中定义类 集合(collections)数据结构。不同于内建的数组和元组类型,这些集合指向的数据是储存在堆上的。因此,这些数据的数量不必在编译时就已知,并且还可以随着程序的运行增长或缩小。接下来详细介绍三个在 Rust 中广泛使用的集合:
vector
:允许我们按顺序储存一系列数量可变的值字符串
(
string
)
:字符的集合。哈希 map
(
hash map
)
:允许我们将值(value)与一个特定的键(key)相关联。
vector
首先是 Vec<T>
,也被称为 vector。它允许我们储存多个相同类型的值,所有值在内存中彼此相邻排列。类似于其他语言中的数组。
新建 Vector
调用 Vec::new
函数创建一个新的空 vector:
let v: Vec<i32> = Vec::new();
💡 这里我们增加了一个类型标注。因为没有向这个 vector 中插入任何值,Rust 并不知道我们想要储存什么类型的元素。
Vec
是一个由标准库提供的类型,它可以存放任何类型。Vec<i32>
是泛型,告诉编译器你创建存放什么类型的 Vec
。而在大多数情况中,只要你在创建时初始化值,编译器就可以推断出想要存放的类型。
为了方便,Rust 提供了 vec!
宏,来帮助我们方便地初始值来创建一个 Vec
:
let v =