Junior — Middle
É possível obter uma iteração mais rápida sobre uma lista em comparação com um Map em linguagens de programação?
sobes.tech IA
Resposta da IA
Sim, a iteração sobre um slice em Go costuma ser mais rápida do que sobre um Map, porque um slice é um array sequencial de elementos, enquanto que um Map é uma tabela de hash com uma estrutura mais complexa.
A iteração sobre um slice ocorre sequencialmente na memória, o que é bem cacheado pelo processador, enquanto que o Map requer o cálculo de hashes e pode ter uma ordem de percurso arbitrária.
Exemplo de iteração sobre um slice:
slice := []int{1, 2, 3, 4, 5}
for _, v := range slice {
fmt.Println(v)
}
Iterando sobre um Map:
m := map[string]int{"a":1, "b":2}
for k, v := range m {
fmt.Println(k, v)
}
Portanto, se a velocidade de percurso e a ordem forem importantes, é melhor usar slices.