понедельник, 16 сентября 2019 г.

Сортировка map (карт) по ключу или значению в Golang

Map (карта) в Golang - это неупорядоченная коллекция пар ключ-значение. Порядок записи в map не имеет значения и при итерации пары ключ-значение выдаются в случайном порядке. Если вам нужен стабильный порядок итераций, вы должны поддерживать отдельную структуру данных.

В следующем примере используется отсортированный срез (slice) ключей для печати map[string]int в порядке расположения ключей.

m := map[string]int{"A": 21, "C": 3, "B": 46}

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])
}

Вывод:

A 21
B 46
C 3

Также, начиная с Go 1.12, пакет fmt печатает карты в порядке сортировки ключей, чтобы упростить тестирование. Например:

m := map[string]int{"A": 21, "C": 3, "B": 46}
fmt.print(m)

Вывод:

map[A:21 B:46 C:3]


Читайте также:


Комментариев нет:

Отправить комментарий