avoid_init_to_null
不要将变量显式初始化为 null
。
详情
#不要 将变量显式初始化为 null
。
如果变量是不可空类型或为 final
,则如果在明确初始化之前尝试使用它,Dart 会报告编译错误。如果变量是可空类型且不是 const
或 final
,则它会为你隐式初始化为 null
。在 Dart 中没有“未初始化内存”的概念,也无需显式将变量初始化为 null
以确保“安全”。添加 = null
是多余且不必要的。
不好的示例
dart
Item? bestDeal(List<Item> cart) {
Item? bestItem = null;
for (final item in cart) {
if (bestItem == null || item.price < bestItem.price) {
bestItem = item;
}
}
return bestItem;
}
好的示例
dart
Item? bestDeal(List<Item> cart) {
Item? bestItem;
for (final item in cart) {
if (bestItem == null || item.price < bestItem.price) {
bestItem = item;
}
}
return bestItem;
}
启用
#要启用 avoid_init_to_null
规则,请在你的 analysis_options.yaml
文件中的 linter > rules 下添加 avoid_init_to_null
analysis_options.yaml
yaml
linter:
rules:
- avoid_init_to_null
如果你使用的是 YAML 映射语法来配置 Linter 规则,请在 linter > rules 下添加 avoid_init_to_null: true
analysis_options.yaml
yaml
linter:
rules:
avoid_init_to_null: true