Sobes.tech
Junior — Middle

Je možné dosiahnuť rýchlejšiu iteráciu cez zoznam v porovnaní s Map v programovacích jazykoch?

sobes.tech AI

Odpoveď od AI

Áno, iterácia cez slice v Go je zvyčajne rýchlejšia ako cez Mapu, pretože slice je sekvenčný poľom prvkov, zatiaľ čo Map je hash tabuľka so zložitejšou štruktúrou.

Iterácia cez slice prebieha sekvenčne v pamäti, čo je dobre cacheované procesorom, zatiaľ čo Map vyžaduje výpočty hashov a môže mať ľubovoľný poradie prechodu.

Príklad iterácie cez slice:

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

Iterácia cez Mapu:

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

Ak je rýchlosť a poradie dôležité, je lepšie použiť slices.