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.