1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| fn main() { let arr = [1, 2, 3, 4, 5]; println!("数组: {:?}", arr);
let arr2: [i32; 5] = [1, 2, 3, 4, 5]; println!("显式类型: {:?}", arr2);
let zeros = [0; 10]; let ones = [1.0_f64; 5]; println!("全零数组: {:?}", zeros); println!("全一数组: {:?}", ones);
let first = arr[0]; let second = arr[1]; let last = arr[4]; println!("第一个: {}, 第二个: {}, 最后一个: {}", first, second, last);
println!("数组长度: {}", arr.len()); println!("数组大小: {} 字节", std::mem::size_of_val(&arr));
match arr.get(2) { Some(val) => println!("arr[2] = {}", val), None => println!("索引越界!"), } match arr.get(10) { Some(val) => println!("arr[10] = {}", val), None => println!("arr[10] 索引越界!"), }
let mut mut_arr = [1, 2, 3, 4, 5]; println!("修改前: {:?}", mut_arr); mut_arr[0] = 10; mut_arr[4] = 50; println!("修改后: {:?}", mut_arr);
println!("\n遍历数组:"); for element in &arr { print!("{} ", element); } println!();
for (index, value) in arr.iter().enumerate() { println!(" arr[{}] = {}", index, value); }
let numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]; println!("\n数组方法:"); println!("包含 5: {}", numbers.contains(&5)); println!("以 [3,1] 开头: {}", numbers.starts_with(&[3, 1]));
let mut sortable = [3, 1, 4, 1, 5, 9, 2, 6]; sortable.sort(); println!("排序后: {:?}", sortable);
let matrix: [[i32; 3]; 2] = [ [1, 2, 3], [4, 5, 6], ]; println!("\n二维数组:"); for row in &matrix { println!(" {:?}", row); } println!("matrix[1][2] = {}", matrix[1][2]); }
|