陣列是相同型別元素的集合,這些元素以順序方式一起儲存在記憶體位置中。
如何宣告陣列
在 Rust 中,為了宣告一個陣列,我們使用方括號符號“[]”並宣告陣列的大小,後跟其資料:
例子:
fn main() { let arr: [i32; 5] = [1, 2, 3, 4, 5]; println!(<font>"{:?}", arr); }
|
在此程式碼中,arr它是一個包含 5 個元素的整數陣列i32。oprintln!("{:?}", arr)用於在終端中記錄陣列。
訪問元素
要訪問 Rust 中陣列的元素,我們可以使用從 0(零)開始的索引。對於那些習慣 JavaScript 的人來說,訪問方式非常相似。
fn main() { let arr = [1, 2, 3, 4, 5]; println!(<font>"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!(<font>"O elemento é: {}", element); } }
|
多維陣列(矩陣)
我們還可以有一個陣列的陣列,它是一個矩陣。
我們可以在 Rust 中定義它,如下所示:
fn main() { let matrix: [[i32; 3]; 2] = [ [1, 2, 3], [4, 5, 6] ]; println!(<font>"{:?}", matrix); }
|
在此示例中,定義了一個矩陣變數,它是一個陣列陣列,其中矩陣變數的大小為 2 個陣列,其中包含 3 個整數元素。處理陣列函式的示例專案
讓我們啟動一個案例專案
cargo new array-operations cd array-operations
|
現在,讓我們編輯src/main.rs檔案並建立陣列結構。
fn main() { println!(<font>"Operações com arrays");
let arr: [i32; 5] = [1, 2, 3, 4, 5];
println!("Original array: {:?}", arr);
// 訪問陣列元素<i> println!("Primeiro elemento: {}", arr[0]);
// 修改陣列元素<i> let mut arr2: [i32; 5] = arr; arr2[0] = 10; println!("Array modificado: {:?}", arr2);
// 陣列元素相加<i> let sum: i32 = arr.iter().sum(); println!("Soma dos elementos: {}", sum);
// 找出最高值<i> let max: &i32 = arr.iter().max().unwrap(); println!("Maior valor: {}", max);
// 找出最低值<i> let min: &i32 = arr.iter().min().unwrap(); println!("Menor valor: {}", min);
// 反轉陣列元素<i> 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 文件