数组签名 \[T;N\],数组的长度必须是常量,在编译阶段可以确定,属于类型的一部分,不能增加和减少数组元素
向量签名Vec,是动态分配内存空间的可增长的序列,数组元素都在堆上分配空间,向量大小可以调整,可以增删改里面的元素
类型&\[T\]和&mut \[T\]表示切片,是数组或者向量的一部分,可变切片可以读取和修改切片元素,但是不能分享,不可变切片允许分享,但是不能修改切片元素
v.len()用于获取长度,获取元素用v\[i\],rust会检查i的取值合法性,否则会引起恐慌,如果长度为0,任何索引都会引起恐慌,i必须是usize类型,不能是其他的整型类型
数组直接量用方括号定义
let arr:\[u32;2\]=\[1,2\];
也可以用\[V;N\]的形式定义N个元素为V的数组
let mut sieve = \[true;1000\];
rust保证不能访问没有初始化的值(包含数组)
数组长度只能是编译期能确定的常量,如果需要改变长度,用向量替代。
数组的大部分方法都是切片提供的,包括len()方法,数组调用方法的时候隐式转换成切片类型再调用,可以对数组调用所有切片的方法。
