duplicate_variable_pattern
变量 '{0}' 在此模式中已定义。
描述
#当逻辑与模式 (logical-and pattern) 的分支中声明的变量已在同一模式的先前分支中声明时,分析器会产生此诊断信息。
示例
#以下代码会产生此诊断信息,因为变量 a
在逻辑与模式 (logical-and pattern) 的两个分支中都声明了
dart
void f((int, int) r) {
if (r case (var a, 0) && (0, var a)) {
print(a);
}
}
常见修复方法
#如果需要在多个分支中捕获匹配的值,请更改变量名称以确保其唯一性
dart
void f((int, int) r) {
if (r case (var a, 0) && (0, var b)) {
print(a + b);
}
}
如果只需要在一个分支中捕获匹配的值,则从除一个分支以外的所有分支中移除变量模式
dart
void f((int, int) r) {
if (r case (var a, 0) && (0, _)) {
print(a);
}
}