Rust可以匹配struct字段吗?例如,此代码:
struct Point {
x: bool,
y: bool,
}
let point = Point { x: false, y: true };
match point {
point.x => println!("x is true"),
point.y => println!("y is true"),
}
应该导致:
y is true
答案 0 :(得分:24)
Rust可以匹配struct字段吗?
在"Destructuring structs"章节的Rust书中对此进行了描述。
match point {
Point { x: true, .. } => println!("x is true"),
Point { y: true, .. } => println!("y is true"),
_ => println!("something else"),
}
答案 1 :(得分:6)
您的问题中提供的语法没有任何意义;您似乎只想使用正常的if
语句:
if point.x { println!("x is true") }
if point.y { println!("y is true") }
我强烈建议您重新阅读The Rust Programming Language,特别是
上的章节一旦你阅读了它,就应该清楚point.x
不是一个模式,所以不能在匹配臂的左侧使用它。