mirror of
https://github.com/rust-lang/rustlings.git
synced 2025-01-13 16:16:28 +00:00
bde6f7470c
Some checks failed
Rustlings Tests / clippy (push) Has been cancelled
Rustlings Tests / fmt (push) Has been cancelled
Rustlings Tests / test (macOS-latest) (push) Has been cancelled
Rustlings Tests / test (ubuntu-latest) (push) Has been cancelled
Rustlings Tests / test (windows-latest) (push) Has been cancelled
Rustlings Tests / dev-check (push) Has been cancelled
Web / Build and deploy site and docs (push) Has been cancelled
27 lines
694 B
Rust
27 lines
694 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!("Coordinates are {},{}", p.x, p.y),
|
|
// ^^^ added
|
|
_ => panic!("No match!"),
|
|
}
|
|
|
|
// Solution 2: Matching over a reference (`&Option`) by added `&` before
|
|
// `optional_point`.
|
|
match &optional_point {
|
|
//^ added
|
|
Some(p) => println!("Coordinates are {},{}", p.x, p.y),
|
|
_ => panic!("No match!"),
|
|
}
|
|
|
|
println!("{optional_point:?}");
|
|
}
|