collection_ methods_ unrelated_ type
Saiba mais sobre a regra de lint collection_methods_unrelated_type.
Invocação de vários métodos de coleção com argumentos de tipos não relacionados.
Detalhes
#NÃO FAÇA invocar certos métodos de coleção com um argumento de tipo não relacionado.
Fazer isso invocará == nos elementos da coleção e provavelmente retornará false.
Um argumento passado a um método de coleção deve estar relacionado ao tipo da coleção da seguinte forma:
- um argumento de
Iterable<E>.containsdeve estar relacionado aE - um argumento de
List<E>.removedeve estar relacionado aE - um argumento de
Map<K, V>.containsKeydeve estar relacionado aK - um argumento de
Map<K, V>.containsValuedeve estar relacionado aV - um argumento de
Map<K, V>.removedeve estar relacionado aK - um argumento de
Map<K, V>.[]deve estar relacionado aK - um argumento de
Queue<E>.removedeve estar relacionado aE - um argumento de
Set<E>.lookupdeve estar relacionado aE - um argumento de
Set<E>.removedeve estar relacionado aE
RUIM:
void someFunction() {
var list = <int>[];
if (list.contains('1')) print('someFunction'); // LINT
}
RUIM:
void someFunction() {
var set = <int>{};
set.remove('1'); // LINT
}
BOM:
void someFunction() {
var list = <int>[];
if (list.contains(1)) print('someFunction'); // OK
}
BOM:
void someFunction() {
var set = <int>{};
set.remove(1); // OK
}
Ativar
#
Para ativar a regra collection_methods_unrelated_type, adicione collection_methods_unrelated_type
em
linter > rules no seu arquivo analysis_options.yaml:
linter:
rules:
- collection_methods_unrelated_type
Se você usa a sintaxe de mapa YAML para configurar as regras de lint,
adicione collection_methods_unrelated_type: true em linter > rules:
linter:
rules:
collection_methods_unrelated_type: true
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.