用实例学习 Rust——序列类型
Rust的序列类型有三类。Array类型是在编译期间就确定的了,只能含有单一类型,并且不能改变大小。Tuple类型可以含有不同的数据类型,但是同样不能改变大小。Vec是个泛型序列类型,含有的数据类型为T,它是可以动态改变大小的。下面通过代码,我们来看看它们各自都有什么特性。
先来看看Array:
usize代表数组中的数据类型,5代表数组的大小。0为数组中的初始值。
初始化值为[1,2,3,4,5],注意数组大小是5。
因为arr1被mut修饰,所以可以修改数组中的值,像其他语言一样,用索引指定修改的元素。
下面来看看Tuple:
等号左边的括号里面是数据类型声明,等号右边是数据初始值。访问tuple中的元素和数组类似,用索引值,但用的是类似对象访问属性的.的方式。因为mut修饰的缘故,我们可以修改tuple里面的值。
像上面代码声明struct的方式,其实是tuple。我们看到访问元素的方式同样是.和索引的方式。
最后我们来看看Vec:
使用vec!宏初始化了一个Vec。
声明了一个元素类型为i32的Vec,并初始化为空。
往Vec中添加元素。在索引0的位置插入200。输出为[200,100,300]。swap_remove方法移除索引值,然后用Vec中的最后一个值代替被移除元素的位置。移除值为200。Vec中的元素为[300,100],300为最后一个元素,代替了被移除的200的位置。pop方法移除的是最后一个元素,也就是100,返回值为Option类型,也就是Some(100)。因为有可能在用pop的时候Vec中已经没有元素了,将返回None。输出为[300]。shrink_to_fit方法会根据Vec中的元素数量改变大小。比如原来有3个元素,现在是0个元素,那么size将变为0,但Vec的容量值比0要大。
如有任何问题,请添加微信公众号“读一读我”。
主题测试文章,只做测试使用。发布者:最新稳定辅助网,转转请注明出处:https://www.744broad.com/16652.html