📜  Rust-数组(1)

📅  最后修改于: 2023-12-03 15:34:46.855000             🧑  作者: Mango

Rust-数组

在Rust中,数组是一个固定大小的序列,包含具有相同数据类型的元素。数组中的元素可以通过索引访问,索引从0开始,最大索引为数组长度减1。Rust数组的长度是在声明时确定的,一旦定义后就不能改变。

创建数组

Rust数组可以通过两种方式创建:

  1. 使用固定大小的语法
let array1 = [1, 2, 3, 4, 5];
// 或者指定数组类型,这里是u8类型
let array2: [u8; 5] = [1, 2, 3, 4, 5];
  1. 使用数组初始化器
let array3 = [0; 5];
// 这里创建了一个包含5个零的数组
访问数组元素

我们可以使用方括号加上索引来访问数组中的元素。

let array = [1, 2, 3, 4, 5];
let first = array[0];
let last = array[4];
数组长度

可以使用 len() 方法返回数组的长度:

let array = [1, 2, 3, 4, 5];
let length = array.len();
数组切片

数组切片是对数组的一个引用,它可以让我们引用数组的一部分。切片由指向起始元素的指针和长度组成。

let array = [1, 2, 3, 4, 5];
let slice = &array[1..4];

这里 slice 引用了 array 数组的第二个元素到第四个元素(左闭右开)

数组的遍历

可以使用 for 循环对数组进行迭代:

let array = [1, 2, 3, 4, 5];
for element in array.iter() {
    print!("{} ", element);
}

也可以使用 for 循环和 enumerate() 方法来遍历数组时同时获取索引和元素。

let array = [1, 2, 3, 4, 5];
for (index, element) in array.iter().enumerate() {
    print!("{}:{} ", index, element);
}
数组的修改

由于数组是不可变的,我们不能直接修改数组中的元素。但是,我们可以使用可变引用来通过修改引用的方式改变数组中的元素。

let mut array = [1, 2, 3, 4, 5];
array[0] = 0;

在上面的代码中,我们将 array 中的第一个元素修改为了0。需要注意的是,这里的 array 是可变的数组,而不是不可变的。

数组排序

Rust提供了一个 sort() 方法来对数组进行排序。

let mut array = [5, 2, 4, 1, 3];
array.sort();

sort() 方法默认以升序排序,可以使用 reverse() 方法使其变成降序排序。

let mut array = [5, 2, 4, 1, 3];
array.sort();
array.reverse();
数组的比较

可以使用 == 运算符来比较两个数组是否相等。

let array1 = [1, 2, 3];
let array2 = [1, 2, 3];
if array1 == array2 {
    println!("The arrays are equal");
}

这里会打印出 The arrays are equal

总结

Rust数组是一个固定大小的序列,包含具有相同数据类型的元素。数组的长度是在声明时确定的,一旦定义后就不能改变。我们可以使用 [] 方式访问数组元素,使用 len() 方法返回数组长度。数组排序、比较等操作也非常方便。