目錄

不必要的gettersetter

避免為了「安全」而將欄位包裹在 getter 和 setter 中。

此規則自 Dart 2.0 起提供。

規則集:建議flutter

此規則有可用的快速修正

詳細資訊

#

出自 Effective Dart

避免為了「安全」而將欄位包裹在 getter 和 setter 中。

在 Java 和 C# 中,常見的做法是將所有欄位隱藏在 getter 和 setter(或 C# 中的屬性)之後,即使實作只是轉發到該欄位。這樣一來,如果需要對這些成員執行更多工作,則可以執行,而無需接觸呼叫點。這是因為在 Java 中呼叫 getter 方法與存取欄位不同,而且存取屬性在 C# 中與存取原始欄位不具有二進位相容性。

Dart 沒有此限制。欄位和 getter/setter 完全無法區分。您可以在類別中公開一個欄位,然後將其包裹在 getter 和 setter 中,而無需接觸任何使用該欄位的程式碼。

不良範例

dart
class Box {
  var _contents;
  get contents => _contents;
  set contents(value) {
    _contents = value;
  }
}

良好範例

dart
class Box {
  var contents;
}

用法

#

若要啟用 unnecessary_getters_setters 規則,請在您的 analysis_options.yaml 檔案中,於 linter > rules 下方新增 unnecessary_getters_setters

analysis_options.yaml
yaml
linter:
  rules:
    - unnecessary_getters_setters