E1010#
这个模式未使用。这通常发生在模式匹配中,这个模式完全被前一个模式覆盖。
MoonBit 中的模式匹配是按顺序执行的,从第一个分支到最后一个。如果一个模式被前一个模式覆盖,它将永远不会被执行,因为所有的控制流都将被定向到第一个匹配的分支。
错误示例#
fn main {
match Some(1) {
_ => println("_")
Some(a) => println("Some(\{a})") // Warning: Unused pattern
}
}
建议#
这个警告通常可以通过交换模式匹配中分支的顺序来修复。如果分支的顺序很重要,那么你可能希望完善第一个模式,使其排除第二个模式覆盖的内容。
fn main {
match Some(1) {
Some(a) => println("Some(\{a})")
_ => println("_")
}
}
或者,
fn main {
match Some(1) {
None => println("_")
Some(a) => println("Some(\{a})")
}
}