Sobes.tech
Junior — Middle

Lze dosáhnout rychlejší iterace přes seznam ve srovnání s Map v programovacích jazycích?

sobes.tech AI

Odpověď od AI

Ano, iterace přes slice v Go je obvykle rychlejší než přes Mapu, protože slice je sekvenční pole prvků, zatímco Map je hashovací tabulka s složitější strukturou.

Iterace přes slice probíhá sekvenčně v paměti, což je dobře cacheováno procesorem, zatímco Map vyžaduje výpočty hashů a může mít libovolný pořadí průchodu.

Příklad iterace přes slice:

slice := []int{1, 2, 3, 4, 5}
for _, v := range slice {
    fmt.Println(v)
}

Iterace přes Mapu:

m := map[string]int{"a":1, "b":2}
for k, v := range m {
    fmt.Println(k, v)
}

Pokud je důležitá rychlost průchodu a pořadí, je lepší používat slices.