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
除非另有说明,否则本网站上的文档反映的是 Dart 3.7.1 版本。页面上次更新于 2025-03-07。 查看源代码 或 报告问题。