跳到主要內容

avoid_setters_without_getters

穩定

避免沒有 getter 的 setter。

詳情

#

不要定義沒有相應 getter 的 setter。

定義一個 setter 而不定義相應的 getter 可能會導致邏輯不一致。這樣做可能會允許你將屬性設定為某個值,但隨後觀察屬性的值時,它很容易就會是不同的。

不好

dart
class Bad {
  int l, r;

  set length(int newLength) {
    r = l + newLength;
  }
}

dart
class Good {
  int l, r;

  int get length => r - l;

  set length(int newLength) {
    r = l + newLength;
  }
}

啟用

#

要啟用 avoid_setters_without_getters 規則,請在你的 analysis_options.yaml 檔案中,將 avoid_setters_without_getters 新增到 linter > rules

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_setters_without_getters

如果你使用 YAML map 語法配置 linter 規則,請將 avoid_setters_without_getters: true 新增到 linter > rules

analysis_options.yaml
yaml
linter:
  rules:
    avoid_setters_without_getters: true