Google News
logo
Rust - Interview Questions
Write down Some Omit Indexes of a Rust Slice Examples.
While slicing a data collection, Rust allows us to omit either the start index or the end index or both from its syntax.
&variable[start_index..end_index];​

For example :

1. Omitting the Start Index of a Slice :
fn main() {
    let numbers = [1, 2, 3, 4, 5];

    // omit the start index
    let slice = &numbers[..3];

    println!("array = {:?}", numbers);
    println!("slice = {:?}", slice);
}​

Output :
array = [1, 2, 3, 4, 5]
slice = [1, 2, 3]​

Here, &numbers[..3] includes ..3 without the start index. This means the slice starts from index 0 and goes up to index 3 (exclusive). It is equivalent to &numbers[0..3].

2. Omitting the End Index of a Slice :
fn main() {
    let numbers = [1, 2, 3, 4, 5];

    // omit the end index
    let slice = &numbers[2..];

    println!("array = {:?}", numbers);
    println!("slice = {:?}", slice);
}​

Output :
array = [1, 2, 3, 4, 5]
slice = [3, 4, 5]​

Here, &numbers[2..] includes 2.. without the end index. This means the slice starts from index 2 and goes up to index 5 (exclusive). It is equivalent to &numbers[2..5].
3. Omitting both Start and End Index of a Slice :
fn main() {
    let numbers = [1, 2, 3, 4, 5];
    
    // omit the start index and the end index
    // reference the whole array
    let slice = &numbers[..];

    println!("array = {:?}", numbers);
    println!("slice = {:?}", slice);
}​

Output :
array = [1, 2, 3, 4, 5]
slice = [1, 2, 3, 4, 5]​
Here, &numbers[..] includes .. without the start and end index. This means the slice starts from index 0 and goes up to index 5 (exclusive).

It is equivalent to &numbers[0..5] which will produce the same slice and will reference the whole array.
Advertisement