[][src]Function tao_of_rust::ch03::type_size::reset

pub fn reset(arr: [u32; 5])

动态大小类型:[T]

探索数组

Error usage:

// Error: `[u32]` does not have a constant size known at compile-time
fn reset(mut arr: [u32]) {
    arr[0] = 5;
    arr[1] = 4;
    arr[2] = 3;
    arr[3] = 2;
    arr[4] = 1;
    println!("reset arr {:?}", arr);
}
let arr: [u32] = [1, 2, 3, 4, 5];
reset(arr);
println!("origin arr {:?}", arr);Run

Right usage 1: 指定固定长度

fn reset(mut arr: [u32; 5]) {
    arr[0] = 5;
    arr[1] = 4;
    arr[2] = 3;
    arr[3] = 2;
    arr[4] = 1;
    println!("reset arr {:?}", arr);
}
let arr: [u32; 5] = [1, 2, 3, 4, 5];
reset(arr);
println!("origin arr {:?}", arr);Run

Right usage 2: 使用胖指针

fn reset(arr: &mut[u32]) {
    arr[0] = 5;
    arr[1] = 4;
    arr[2] = 3;
    arr[3] = 2;
    arr[4] = 1;
    println!("reset arr {:?}", arr);
}
let mut arr = [1, 2, 3, 4, 5];
println!("reset before : origin array {:?}", arr);
{
    let mut_arr: &mut[u32] = &mut arr;
    reset(mut_arr);
}
println!("reset after : origin array {:?}", arr);Run