跳到主要內容

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 map 語法來設定 linter 規則,請在 linter > rules 下新增 prefer_for_elements_to_map_fromIterable: true

analysis_options.yaml
yaml
linter:
  rules:
    prefer_for_elements_to_map_fromIterable: true