prefer_ for_ elements_ to_ map_ fromIterable
Learn about the prefer_for_elements_to_map_fromIterable linter rule.
Prefer for elements when building maps from
iterables.
Details
#
When building maps from iterables, it is preferable to use
for elements.
Using 'for' elements brings several benefits including:
- Performance
- Flexibility
- Readability
- Improved type inference
- Improved interaction with null safety
BAD:
Map<String, WidgetBuilder>.fromIterable(
kAllGalleryDemos,
key: (demo) => '${demo.routeName}',
value: (demo) => demo.buildRoute,
);
GOOD:
return {
for (var demo in kAllGalleryDemos)
'${demo.routeName}': demo.buildRoute,
};
GOOD:
// Map<int, Student> is not required, type is inferred automatically.
final pizzaRecipients = {
...studentLeaders,
for (var student in classG)
if (student.isPassing) student.id: student,
};
Enable
#
To enable the
prefer_for_elements_to_map_fromIterable rule, add
prefer_for_elements_to_map_fromIterable
under
linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- prefer_for_elements_to_map_fromIterable
If you're instead using the YAML map syntax to configure
linter rules, add
prefer_for_elements_to_map_fromIterable: true
under linter > rules:
linter:
rules:
prefer_for_elements_to_map_fromIterable: true
除非另有说明,文档之所提及适用于 Dart 3.12.2 版本报告页面问题.