Функция maps.Collect

Функция maps.Collect собирает все элементы карты (map) в срез значений, отсортированных по ключам. Она принимает один параметр — исходную карту, возвращает срез значений, упорядоченных по возрастанию ключей. Карта должна иметь сопоставимые типы ключей, а значения могут быть любого типа.

Синтаксис

gomaps.Collect(m)

Пример

Давайте создадим карту с ключами-строками и соберем ее значения в срез:

gopackage main

import (
  "fmt"
  "maps"
)

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

  res := maps.Collect(m)
  fmt.Println(res)
}

Результат выполнения кода:

go[1 2 3]

Обратите внимание: значения отсортированы по ключам, несмотря на порядок объявления карты.

Пример

Рассмотрим пример с картой, где ключи являются числами, а значения — строками:

gopackage main

import (
  "fmt"
  "maps"
)

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

  res := maps.Collect(m)
  fmt.Println(res)
}

Результат выполнения кода:

go[a b c]

Ключи 1, 2, 3 упорядочиваются по возрастанию, поэтому значения выводятся в соответствующем порядке.

Пример

Если карта пуста, функция возвращает пустой срез:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  m := map[string]int{}

  res := maps.Collect(m)
  fmt.Println(res)
}

Результат выполнения кода:

go[]

Смотрите также

  • функцию maps.Keys,
    которая возвращает срез ключей карты
  • функцию maps.Values,
    которая возвращает срез значений карты
  • функцию maps.Clone,
    которая создает копию карты
  • функцию maps.Equal,
    которая сравнивает две карты на равенство