数组是相同类型元素的集合,这些元素以顺序方式一起存储在内存位置中。
如何声明数组
在 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 文档