How to use match to unpack (extract) a struct in Rust

3 Answers

0 votes
fn main() {
    struct ST {
        x: (u32, u32),
        y: u32,
    }

    let st = ST { x: (7, 8), y: 2 };

    match st {
        ST { x: (1, b), y } => println!("x = 1, b = {}, y = {} ", b, y),

        ST { y: 2, x: val } => println!("y = 2, x = {:?}", val),

        ST { y, .. } => println!("y = {}, x = don't needed", y),
    }
}



/*
run:

y = 2, x = (7, 8)

*/

 



answered May 4, 2023 by avibootz
0 votes
fn main() {
    struct ST {
        x: (u32, u32),
        y: u32,
    }

    let st = ST { x: (7, 8), y: 9 };

    match st {
        ST { x: (7, b), y } => println!("x = 7, b = {}, y = {} ", b, y),

        ST { y: 2, x: val } => println!("y = 2, x = {:?}", val),

        ST { y, .. } => println!("y = {}, x = don't needed", y),
    }
}



/*
run:

x = 7, b = 8, y = 9 

*/

 



answered May 4, 2023 by avibootz
0 votes
fn main() {
    struct ST {
        x: (u32, u32),
        y: u32,
    }

    let st = ST { x: (7, 8), y: 9 };

    match st {
        ST { x: (41, b), y } => println!("x = 7, b = {}, y = {} ", b, y),

        ST { y: 2, x: val } => println!("y = 2, x = {:?}", val),

        ST { y, .. } => println!("y = {}, x = don't needed", y),
    }
}



/*
run:

y = 9, x = don't needed

*/

 



answered May 4, 2023 by avibootz

Related questions

4 answers 212 views
3 answers 199 views
1 answer 122 views
1 answer 150 views
1 answer 144 views
144 views asked Oct 25, 2022 by avibootz
2 answers 137 views
137 views asked May 5, 2023 by avibootz
1 answer 111 views
111 views asked May 5, 2023 by avibootz
...