As you are only interested in matching one of the variants, you can use an if let
expression instead of a match
:
struct Point {
x: f64,
y: f64,
}
enum Shape {
Circle(Point, f64),
Rectangle(Point, Point),
}
fn main() {
let my_shape = Shape::Circle(Point { x: 0.0, y: 0.0 }, 10.0);
if let Shape::Circle(_, radius) = my_shape {
println!("value: {}", radius);
}
}
This means "if my_shape
can be destructured into a Circle
, do nothing with the first index, but bind the value of the second index to radius
".
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…