メインコンテンツにスキップ

pattern_assignment_not_local_variable

パターン代入ではローカル変数のみに代入できます。

説明

#

ローカル変数以外のものにパターン代入で値を代入すると、アナライザーはこの診断を生成します。パターンはフィールドやトップレベル変数には代入できません。

#

パターンでの分割代入(destructuring)を使用した方がコードがすっきりする場合、パターン宣言でローカル変数に値を代入し、非ローカル変数には別途代入するようにコードを書き換えてください。

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;
  }
}