Tradicionalmente, para iterar sobre as chaves e valores de a Map
você pode escrever isto:
map.forEach((key, value) {
});
Mas com a introdução de padrões no Dart 3.0 você poderia realmente escrevê-lo como
for (var MapEntry(:key, :value) in map.entries) {
}
Na verdade, tal construção é dada como exemplo na documentação de padrões na seção For e loops for-in .
Suponho que seja um estilo de código melhor é subjetivo, mas uma maneira é melhor que a outra em termos de desempenho/memória?
O desempenho pode ser estimado com um benchmark:
Pontuações de referência para tamanho de mapa 100:
Pontuações de referência para tamanho de mapa 100.000:
Pontuações de referência para tamanho de mapa 1.000.000:
Conclusão: as pontuações do benchmark mostram um desempenho ligeiramente melhor ao usar
forEach
para iterar mapas. No entanto, para tamanhos de mapas moderados, o ganho de desempenho é muito pequeno para recomendar um estilo em detrimento de outro.Nota: Os benchmarks foram realizados em uma CPU i5-6260U a 1,80 GHz com 32 GB de RAM.