How to use match to unpack (extract) an array in Rust

4 Answers

0 votes
fn main() {
    let arr = [6, -7, 19, -21];

    match arr {
        [0, second, third, fourth] => println!(
            "arr[0] = 0, arr[1] = {}, arr[2] = {}, arr[3] = {}", second, third, fourth),

        [6, _, third, fourth] => println!(
            "arr[0] = 6, arr[1] = ignored, arr[2] = {}, arr[3] = {}",  third, fourth),

        [9, second, ..] => println!(
            "arr[0] = 9, arr[1] = {}, all the rest ignored", second),

        [first, middle @ .., last] => println!(
            "arr[0] = {}, middle = {:?}, arr[2] = {}", first, middle, last
        ),
    }
}




/*
run:

arr[0] = 6, arr[1] = ignored, arr[2] = 19, arr[3] = -21

*/

 



answered May 4, 2023 by avibootz
0 votes
fn main() {
    let arr = [6, -7, 19, -21];

    match arr {
        [0, second, third, fourth] => println!(
            "arr[0] = 0, arr[1] = {}, arr[2] = {}, arr[3] = {}", second, third, fourth),

        [-8, _, third, fourth] => println!(
            "arr[0] = -8, arr[1] = ignored, arr[2] = {}, arr[3] = {}",  third, fourth),

        [9, second, ..] => println!(
            "arr[0] = 9, arr[1] = {}, all the rest ignored", second),

        [first, middle @ .., last] => println!(
            "arr[0] = {}, middle = {:?}, arr[2] = {}", first, middle, last
        ),
    }
}




/*
run:

arr[0] = 6, middle = [-7, 19], arr[2] = -21

*/

 



answered May 4, 2023 by avibootz
0 votes
fn main() {
    let arr = [6, -7, 19, -21];

    match arr {
        [0, second, third, fourth] => println!(
            "arr[0] = 0, arr[1] = {}, arr[2] = {}, arr[3] = {}", second, third, fourth),

        [-8, _, third, fourth] => println!(
            "arr[0] = -8, arr[1] = ignored, arr[2] = {}, arr[3] = {}",  third, fourth),

        [9, second, ..] => println!(
            "arr[0] = 9, arr[1] = {}, all the rest ignored", second),
            
        [6, second, tail @ ..] => println!(
            "array[0] = 6, array[1] = {}, other elements = {:?}", second, tail),

        [first, middle @ .., last] => println!(
            "arr[0] = {}, middle = {:?}, arr[2] = {}", first, middle, last
        ),
    }
}




/*
run:

array[0] = 6, array[1] = -7, other elements = [19, -21]

*/

 



answered May 4, 2023 by avibootz
0 votes
fn main() {
    let arr = [9, 5, 19, -21];

    match arr {
        [0, second, third, fourth] => println!(
            "arr[0] = 0, arr[1] = {}, arr[2] = {}, arr[3] = {}", second, third, fourth),

        [-8, _, third, fourth] => println!(
            "arr[0] = -8, arr[1] = ignored, arr[2] = {}, arr[3] = {}",  third, fourth),

        [9, second, ..] => println!(
            "arr[0] = 9, arr[1] = {}, all the rest ignored", second),
            
        [6, second, tail @ ..] => println!(
            "array[0] = 6, array[1] = {}, other elements = {:?}", second, tail),

        [first, middle @ .., last] => println!(
            "arr[0] = {}, middle = {:?}, arr[2] = {}", first, middle, last
        ),
    }
}




/*
run:

arr[0] = 9, arr[1] = 5, all the rest ignored

*/

 



answered May 4, 2023 by avibootz

Related questions

3 answers 191 views
3 answers 199 views
1 answer 122 views
2 answers 137 views
137 views asked May 5, 2023 by avibootz
1 answer 111 views
111 views asked May 5, 2023 by avibootz
2 answers 167 views
...