E3019#
包含的范围模式 a..=b
的上界不能是 _
。
书写 a..=_
没有意义,因为 _
是一个通配符,可以匹配任何值。”等于任何值” 的含义不明确。如果你想表达 “大于或等于 a
” 的含义,你可以使用 a..<_
。
错误示例#
fn main {
match 0 {
0..=_ => println("Big than or equal to 0")
// ^
// Error: Inclusive range pattern `a..=b` cannot have `_` as upper bound
_ => println("Less than 0")
}
}
建议#
将 =
替换为 <
:
fn main {
match 0 {
0..<_ => println("Big than or equal to 0")
_ => println("Less than 0")
}
}