Rust中数组数据结构基础知识

数组是相同类型元素的集合,这些元素以顺序方式一起存储在内存位置中。

如何声明数组
在 Rust 中,为了声明一个数组,我们使用方括号符号“[]”并声明数组的大小,后跟其数据:

例子:

  fn main() {
    let arr: [i32; 5] = [1, 2, 3, 4, 5];
    println!("{:?}", arr);
  }

在此代码中,arr它是一个包含 5 个元素的整数数组i32。

oprintln!("{:?}", arr)用于在终端中记录数组。

访问元素
要访问 Rust 中数组的元素,我们可以使用从 0(零)开始的索引。对于那些习惯 JavaScript 的人来说,访问方式非常相似。

fn main() {
    let arr = [1, 2, 3, 4, 5];
    println!("O primeiro elemento é: {}", arr[0]);
    println!(
"O segundo elemento é: {}", arr[1]);
}

我们只需使用变量并在括号之间输入索引。

数组迭代
iter我们可以使用 for 结构与数组分配变量中可用的函数相结合来迭代数组。

fn main() {
    let arr = [1, 2, 3, 4, 5];
    for element in arr.iter() {
        println!("O elemento é: {}", element);
    }
}

多维数组(矩阵)
我们还可以有一个数组的数组,它是一个矩阵。

我们可以在 Rust 中定义它,如下所示:

fn main() {
    let matrix: [[i32; 3]; 2] = [
        [1, 2, 3],
        [4, 5, 6]
    ];
    println!("{:?}", matrix);
}

在此示例中,定义了一个矩阵变量,它是一个数组数组,其中矩阵变量的大小为 2 个数组,其中包含 3 个整数元素。

处理数组函数的示例项目
让我们启动一个案例项目

cargo new array-operations
cd array-operations

现在,让我们编辑src/main.rs文件并创建数组结构。

fn main() {
    println!("Operações com arrays");

    let arr: [i32; 5] = [1, 2, 3, 4, 5];

    println!(
"Original array: {:?}", arr);

   
// 访问数组元素
    println!(
"Primeiro elemento: {}", arr[0]);

   
// 修改数组元素
    let mut arr2: [i32; 5] = arr;
    arr2[0] = 10;
    println!(
"Array modificado: {:?}", arr2);

   
// 数组元素相加
    let sum: i32 = arr.iter().sum();
    println!(
"Soma dos elementos: {}", sum);

   
// 找出最高值
    let max: &i32 = arr.iter().max().unwrap();
    println!(
"Maior valor: {}", max);

   
// 找出最低值
    let min: &i32 = arr.iter().min().unwrap();
    println!(
"Menor valor: {}", min);

   
// 反转数组元素
    let mut reversed_arr: [i32; 5] = arr;
    reversed_arr.reverse();
    println!(
"Array reverso: {:?}", reversed_arr);
}

cargo run我们可以通过在项目目录中执行来运行代码。

结果应该是这样的:

❯ cargo run
   Compiling array-operations v0.1.0 (/home/user/projects/array-operations)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.18s
     Running `target/debug/array-operations`
Operações com arrays
Original array: [1, 2, 3, 4, 5]
Primeiro elemento: 1
Array modificado: [10, 2, 3, 4, 5]
Soma dos elementos: 15
Maior valor: 5
Menor valor: 1
Array reverso: [5, 4, 3, 2, 1]

如需更多数组资源,我们可以关注文档 :关于数组的 Rust 文档