目次

no_self_assignments

変数を自分自身に代入しないでください。

このルールは、Dart 3.1 から利用可能です。

詳細

#

しないでください 変数を自分自身に代入します。通常これは間違いです。

悪い例

dart
class C {
  int x;

  C(int x) {
    x = x;
  }
}

良い例

dart
class C {
  int x;

  C(int x) : x = x;
}

良い例

dart
class C {
  int x;

  C(int x) {
    this.x = x;
  }
}

悪い例

dart
class C {
  int _x = 5;

  int get x => _x;

  set x(int x) {
    _x = x;
    _customUpdateLogic();
  }

  void _customUpdateLogic() {
    print('updated');
  }

  void example() {
    x = x;
  }
}

良い例

dart
class C {
  int _x = 5;

  int get x => _x;

  set x(int x) {
    _x = x;
    _customUpdateLogic();
  }

  void _customUpdateLogic() {
    print('updated');
  }

  void example() {
    _customUpdateLogic();
  }
}

悪い例

dart
class C {
  int x = 5;

  void update(C other) {
    this.x = this.x;
  }
}

良い例

dart
class C {
  int x = 5;

  void update(C other) {
    this.x = other.x;
  }
}

使用方法

#

no_self_assignments ルールを有効にするには、analysis_options.yaml ファイルの **linter > rules** の下に no_self_assignments を追加します。

analysis_options.yaml
yaml
linter:
  rules:
    - no_self_assignments