📅  最后修改于: 2023-12-03 15:34:46.855000             🧑  作者: Mango
在Rust中,数组是一个固定大小的序列,包含具有相同数据类型的元素。数组中的元素可以通过索引访问,索引从0开始,最大索引为数组长度减1。Rust数组的长度是在声明时确定的,一旦定义后就不能改变。
Rust数组可以通过两种方式创建:
let array1 = [1, 2, 3, 4, 5];
// 或者指定数组类型,这里是u8类型
let array2: [u8; 5] = [1, 2, 3, 4, 5];
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()
方法返回数组长度。数组排序、比较等操作也非常方便。