Sobes.tech
Junior — Middle

Kā tiek īstenota elementu apmeklējuma secība Map datu struktūrā?

sobes.tech AI

Atbilde no AI

Go valodā map datu struktūra nenodrošina noteiktu kārtību elementu pārlūkošanai. Iterējot ar for range ciklu, kārta būs nejauša un var mainīties katrā programmas palaišanas reizē.

Piemērs, kā pārlūkot map elementus:

m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
    fmt.Println(key, value)
}

Ja nepieciešama kārtota pārlūkošana, parasti tiek izvilkti atslēgas sarakstā, sakārtoti un tad pārlūkoti pēc sakārtotā saraksta:

keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
    fmt.Println(k, m[k])
}

Tādējādi, map pārlūkošanas secība pēc noklusējuma nav noteikta un ir nejauša.