You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# 集合类型
在Rust标准库中有这样一批原住民, 它们天生贵族, 当你看到的一瞬间, 就能爱上它们, 上面是我瞎编的,其实主要是离了它们不行,不信等会我介绍后,你放个狠话,非它们不用试试?
集合在Rust中是一类比较特殊的类型, 因为Rust中大多数数据类型都只能代表一个特定的值, 但是它们可以代表一堆。而且与语言级别的数组、字符串类型不同, 标准库里的这些家伙是分配在堆上, 因此都可以进行动态的增加和减少。
瞧,第一个集合排着整体的队列登场了,它里面的每个元素都雄赳赳气昂昂跟在另外一个元素后面,大小、宽度、高度竟然全部一致,真是令人惊叹。 它就是`Vector`类型,允许你创建一个动态数组,它里面的元素是一个紧挨着另一个排列的。
紧接着,第二个集合在全场的嘘声和羡慕眼光中闪亮登场,只见里面的元素排成一对一对的,彼此都手牵着手,非对方莫属,这种情深深雨蒙蒙的样子真是...挺欠扁的。 它就是`HashMap`类型,该类型允许你在里面存储`KV`对,每一个`K`都有唯一的`V`与之配对。
最后,请用热烈的掌声迎接我们的`String`集合,哦,抱歉,`String`集合天生低调,见不得前两个那样,因此被气走了,你可以去[这里](../compound-type/string-slice)找它.
言归正传,本章所讲的`Vector`、`HashMap`再加上之前的`String`类型,是标准库中最最常用的集合类型,可以说,几乎任何一段代码中都可以找到它们的身影,那么先来看看`Vector`.