mirror of
https://github.com/notohh/rustlings.git
synced 2024-12-23 11:48:09 -05:00
26 lines
678 B
Rust
26 lines
678 B
Rust
#[derive(Debug)]
|
|
struct Point {
|
|
x: i32,
|
|
y: i32,
|
|
}
|
|
|
|
fn main() {
|
|
let optional_point = Some(Point { x: 100, y: 200 });
|
|
|
|
// Solution 1: Matching over the `Option` (not `&Option`) but without moving
|
|
// out of the `Some` variant.
|
|
match optional_point {
|
|
Some(ref p) => println!("Co-ordinates are {},{}", p.x, p.y),
|
|
// ^^^ added
|
|
_ => panic!("No match!"),
|
|
}
|
|
|
|
// Solution 2: Matching over a reference (`&Option`) by added `&` before
|
|
// `optional_point`.
|
|
match &optional_point {
|
|
Some(p) => println!("Co-ordinates are {},{}", p.x, p.y),
|
|
_ => panic!("No match!"),
|
|
}
|
|
|
|
println!("{optional_point:?}");
|
|
}
|