メインコンテンツにスキップ

prefer_spread_collections

安定版
推奨
修正が利用可能です

可能な場合は、スプレッドコレクションを使用してください。

詳細

#

可能な場合は、スプレッドコレクションを使用してください。

個々のアイテムから新しいコレクションを作成したい場合、コレクションリテラルは優れています。しかし、既存のアイテムがすでに別のコレクションに格納されている場合、スプレッドコレクション構文はよりシンプルなコードにつながります。

悪い例

dart
Widget build(BuildContext context) {
  return CupertinoPageScaffold(
    child: ListView(
      children: [
        Tab2Header(),
      ]..addAll(buildTab2Conversation()),
    ),
  );
}
dart
var ints = [1, 2, 3];
print(['a']..addAll(ints.map((i) => i.toString()))..addAll(['c']));
dart
var things;
var l = ['a']..addAll(things ?? const []);

良い例

dart
Widget build(BuildContext context) {
  return CupertinoPageScaffold(
    child: ListView(
      children: [
        Tab2Header(),
        ...buildTab2Conversation(),
      ],
    ),
  );
}
dart
var ints = [1, 2, 3];
print(['a', ...ints.map((i) => i.toString()), 'c');
dart
var things;
var l = ['a', ...?things];

有効にする

#

prefer_spread_collections ルールを有効にするには、analysis_options.yaml ファイルの linter > rules の下に prefer_spread_collections を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_spread_collections

代わりに、linter ルールを設定するために YAML マップ構文を使用している場合は、linter > rules の下に prefer_spread_collections: true を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    prefer_spread_collections: true