Sobes.tech
Junior — Middle

Дали структурата данни Map гарантира запазването на реда на вмъкване на елементите?

sobes.tech AI

Отговор от AI

В езика Go структурата от данни map не гарантира запазването на реда на вмъкване на елементите. Итерацията върху map се извършва в произволен ред, който може да се променя при всяко преминаване.

Ако е необходимо да се запази редът на вмъкване, трябва да се използва допълнителна структура, например срез (slice) за съхранение на ключовете в желан ред, или да се използват външни библиотеки, реализиращи подредени речници.

Пример за обхождане на map с запазване на реда на ключовете:

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    keys := []string{"a", "b", "c"} // ред на вмъкване

    for _, k := range keys {
        fmt.Println(k, m[k])
    }
}