E0001

未匹配的标注

注意:编译器不再触发此错误码

此错误表明,匹配将永远不会到达与所指出的模式相对应的表达式分支,因为前面的多个模式会匹配所有情况。

这意味着可能前面的一些模式太宽泛 (general) 了,而这个模式(不可能匹配到的模式)又太具体了,或者是模式的排序不正确。

例如,下面的 match 块有太多的分支:

match Some(0) {
    Some(bar) => {/* ... */}
    x => {/* ... */} // 这会处理 `None` 情况
    _ => {/* ... */} // 所有可能的分支都已经被处理了
}

match 块会按顺序匹配它们的模式,因此,例如将一个通配分支放在一个更具体的分支之前将会使后者无法生效。

确保 match 分支的顺序时正确的,并移除多余的分支。

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/rust-rcei-2020/...

译文地址:https://learnku.com/docs/rust-rcei-2020/...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~