Rust Slice

https‮/:‬/www.theitroad.com

In Rust, a slice is a reference to a contiguous subset of elements in an array or a vector. Slices are a flexible way to work with arrays and can be used to pass subsets of arrays to functions without copying the data.

You can create a slice by specifying a range of indices using the syntax array[start_index..end_index]. Here's an example:

let my_array = [1, 2, 3, 4, 5];
let my_slice = &my_array[1..3];

println!("Slice: {:?}", my_slice);

In this example, we're creating a slice that includes elements with indices 1 and 2 of the my_array array. The resulting slice will have the values [2, 3]. Note that we're using a reference to the slice (&my_array[1..3]) instead of the slice itself, since slices are borrowed from the original array.

You can also create a slice that includes all elements of an array using the .. syntax. Here's an example:

let my_array = [1, 2, 3, 4, 5];
let my_slice = &my_array[..3];

println!("Slice: {:?}", my_slice);

In this example, we're creating a slice that includes the first three elements of the my_array array. The resulting slice will have the values [1, 2, 3].

You can use slices as function arguments to pass subsets of arrays to functions without copying the data. Here's an example:

fn print_slice(slice: &[i32]) {
    for num in slice {
        println!("Number: {}", num);
    }
}

let my_array = [1, 2, 3, 4, 5];
let my_slice = &my_array[1..3];

print_slice(my_slice);

In this example, we're defining a function print_slice that takes a slice of integers as an argument. We're then creating a slice of the my_array array and passing it to the function. Inside the function, we're iterating over the elements of the slice using a for loop and printing each element using the println! macro.