Функция maps.Keys

Функция maps.Keys возвращает срез, содержащий все ключи переданной карты. В первый параметр функция принимает карту, из которой нужно получить ключи. Порядок ключей в результирующем срезе не определен и может меняться от вызова к вызову. Данная функция полезна для итерации по ключам карты или для преобразования ключей в срез для дальнейшей обработки.

Синтаксис

gomaps.Keys(m)

Пример

Давайте получим ключи карты с целочисленными ключами и строковыми значениями:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  m := map[int]string{
    1: "one",
    2: "two",
    3: "three",
  }
  keys := maps.Keys(m)
  fmt.Println(keys)
}

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

go[1 2 3]

Обратите внимание, что порядок ключей в выводе может быть другим, например [2 3 1] или [3 1 2].

Пример

Давайте получим ключи карты со строковыми ключами и целочисленными значениями:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  m := map[string]int{
    "a": 1,
    "b": 2,
    "c": 3,
  }
  keys := maps.Keys(m)
  fmt.Println(keys)
}

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

go[a b c]

Как и в предыдущем примере, порядок ключей может быть произвольным.

Пример

Давайте используем полученные ключи для итерации по карте:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  m := map[string]int{
    "x": 10,
    "y": 20,
    "z": 30,
  }
  keys := maps.Keys(m)
  for _, key := range keys {
    fmt.Printf("%s: %d\n", key, m[key])
  }
}

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

go"x: 10"
"y: 20"
"z: 30"

Порядок вывода строк может быть произвольным из-за недетерминированного порядка ключей.

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

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