rust数组

发布时间 2023-04-14 10:51:34作者: wenli7363

概述

rust中数组分为两类:

  1. 长度固定的array
  2. 动态数组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]是不同类型,数组长度也是类型的一部分