unnecessary_getters_setters
避免僅僅為了“安全”而將欄位包裝在 getter 和 setter 中。
詳情
#避免僅僅為了“安全”而將欄位包裝在 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;
}啟用
#要在 analysis_options.yaml 檔案中的 linter > rules 下啟用 unnecessary_getters_setters 規則,請新增 unnecessary_getters_setters
analysis_options.yaml
yaml
linter:
rules:
- unnecessary_getters_setters如果你使用 YAML 對映語法配置 linter 規則,請在 linter > rules 下新增 unnecessary_getters_setters: true
analysis_options.yaml
yaml
linter:
rules:
unnecessary_getters_setters: true