E0023
一个模式试图从一个变量中提取不正确的字段数量。
错误代码示例:
enum Fruit {
Apple(String, String),
Pear(u32),
}
let x = Fruit::Apple(String::new(), String::new());
match x {
Fruit::Apple(a) => {}, // error!
_ => {}
}
用于匹配枚举变量的模式必须为枚举变量的每个字段提供子模式。
这儿的 Apple
变量有两个字段, 并应该像这样匹配:
enum Fruit {
Apple(String, String),
Pear(u32),
}
let x = Fruit::Apple(String::new(), String::new());
// Correct.
match x {
Fruit::Apple(a, b) => {},
_ => {}
}
匹配错误的字段数是不会有合理的推断的:
enum Fruit {
Apple(String, String),
Pear(u32),
}
let x = Fruit::Apple(String::new(), String::new());
// Incorrect.
match x {
Fruit::Apple(a) => {},
Fruit::Apple(a, b, c) => {},
}
检查有多少字段是用枚举声明的,并确保模式使用相同的数量(的子模式)。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。