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")
}
}