Sobes.tech
Senior

Vai karte nodrošina datu lasīšanas kārtību?

sobes.tech AI

Atbilde no AI

Go valodā iebūvētais map tips nenodrošina elementu apmeklējuma secību lasīšanas laikā. Map apmeklējums notiek pseido nejaušā secībā, kas var mainīties katrā programmas palaišanas reizē. Ja nepieciešama kārtota apmeklējuma secība, ir jāglabā atslēgas papildus masīvā un jāsortē tās pirms apmeklējuma.

Piemērs, kā apmeklēt map ar atslēgu sakārtošanu:

m := map[string]int{"b": 2, "a": 1, "c": 3}

// Atslēgu iegūšana
keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}

// Atslēgu sakārtošana
sort.Strings(keys)

// Apmeklējums pa sakārtotajiem atslēgām
for _, k := range keys {
    fmt.Println(k, m[k])
}