rustlings/solutions/12_options/options3.rs

27 lines
678 B
Rust
Raw Permalink Normal View History

2024-10-31 19:40:19 +00:00
#[derive(Debug)]
struct Point {
x: i32,
y: i32,
}
2024-10-28 20:46:17 +00:00
fn main() {
2024-10-31 19:40:19 +00:00
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:?}");
2024-10-28 20:46:17 +00:00
}