跳到主要内容

prefer_for_elements_to_map_fromIterable

稳定
推荐
修复可用

在从可迭代对象构建 Map 时,推荐使用 for 元素。

详情

#

当从可迭代对象构建 Map 时,最好使用 for 元素。

使用 'for' 元素带来以下几个好处,包括

  • 性能
  • 灵活性
  • 可读性
  • 改进的类型推断
  • 改进的与空安全的交互

不良示例

dart
Map<String, WidgetBuilder>.fromIterable(
  kAllGalleryDemos,
  key: (demo) => '${demo.routeName}',
  value: (demo) => demo.buildRoute,
);

良好示例

dart
return {
  for (var demo in kAllGalleryDemos)
    '${demo.routeName}': demo.buildRoute,
};

良好示例

dart
// Map<int, Student> is not required, type is inferred automatically.
final pizzaRecipients = {
  ...studentLeaders,
  for (var student in classG)
    if (student.isPassing) student.id: student,
};

启用

#

要启用 prefer_for_elements_to_map_fromIterable 规则,请在您的 analysis_options.yaml 文件中的 linter > rules 下添加 prefer_for_elements_to_map_fromIterable

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_for_elements_to_map_fromIterable

如果您改为使用 YAML 映射语法来配置 linter 规则,请在 linter > rules 下添加 prefer_for_elements_to_map_fromIterable: true

analysis_options.yaml
yaml
linter:
  rules:
    prefer_for_elements_to_map_fromIterable: true