跳到主要内容

pattern_assignment_not_local_variable

模式赋值只能对局部变量进行赋值。

描述

#

当模式赋值(pattern assignment)将值赋给非局部变量时,分析器会产生此诊断。模式不能赋给字段或顶层变量。

示例

#

如果使用模式解构能使代码更清晰,那么重写代码,在模式声明中将值赋给局部变量,然后单独赋给非局部变量。

dart
class C {
  var x = 0;

  void f((int, int) r) {
    (x, _) = r;
  }
}

常见修复

#

如果使用模式赋值能使代码更清晰,那么重写代码,将值赋给局部变量,然后单独赋给非局部变量。

dart
class C {
  var x = 0;

  void f((int, int) r) {
    var (a, _) = r;
    x = a;
  }
}

如果不用模式赋值代码更清晰,那么重写代码以不使用模式赋值。

dart
class C {
  var x = 0;

  void f((int, int) r) {
    x = r.$1;
  }
}