Pular para o conteúdo principal

prefer_collection_literals

Saiba mais sobre a regra de lint prefer_collection_literals.

Estável
Recomendado
Correção disponível

Use literais de coleção quando possível.

Detalhes

#

FAÇA usar literais de coleção quando possível.

RUIM:

dart
var addresses = Map<String, String>();
var uniqueNames = Set<String>();
var ids = LinkedHashSet<int>();
var coordinates = LinkedHashMap<int, int>();

BOM:

dart
var addresses = <String, String>{};
var uniqueNames = <String>{};
var ids = <int>{};
var coordinates = <int, int>{};

EXCEÇÕES:

Quando um LinkedHashSet ou LinkedHashMap é esperado, um literal de coleção não é preferido (nem permitido).

dart
void main() {
  LinkedHashSet<int> linkedHashSet =  LinkedHashSet.from([1, 2, 3]); // OK
  LinkedHashMap linkedHashMap = LinkedHashMap(); // OK
​
  printSet(LinkedHashSet<int>()); // LINT
  printHashSet(LinkedHashSet<int>()); // OK
​
  printMap(LinkedHashMap<int, int>()); // LINT
  printHashMap(LinkedHashMap<int, int>()); // OK
}
​
void printSet(Set<int> ids) => print('$ids!');
void printHashSet(LinkedHashSet<int> ids) => printSet(ids);
void printMap(Map map) => print('$map!');
void printHashMap(LinkedHashMap map) => printMap(map);

Ativar

#

Para ativar a regra prefer_collection_literals, adicione prefer_collection_literals em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_collection_literals

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione prefer_collection_literals: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    prefer_collection_literals: true

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.