概述
rust中数组分为两类:
- 长度固定的array
- 动态数组vector
array的效率比vector高,array存栈上,vector存堆上
array
fn main() {
// [类型;长度]
let a: [i32; 5] = [1, 2, 3, 4, 5];
}
数组元素类型要统一,长度要固定
数组快速初始化
rust下面这种初始化,针对有
// 类似 memset(array,0,5);
let array = [0;5]
数组切片
数组切片是对数组的引用,所以效率也比较高。
注意数组切片类型和数组类型不一样
let a :[i32;5] = [1,2,3,4,5];
let a :&[i32] = &a[1..3]
数组类型是[T,n]
,切片类型是[T]
,因为切片是个运行期的数据结构,其长度在编译阶段不知道
注意,[u8;3]
和[u8;4]
是不同类型,数组长度也是类型的一部分