Функция maps.Keys
Функция maps.Keys возвращает срез, содержащий все ключи переданной карты.
В первый параметр функция принимает карту, из которой нужно получить ключи.
Порядок ключей в результирующем срезе не определен и может меняться от вызова к вызову.
Данная функция полезна для итерации по ключам карты или для преобразования ключей в срез для дальнейшей обработки.
Синтаксис
maps.Keys(m)
Пример
Давайте получим ключи карты с целочисленными ключами и строковыми значениями:
package main
import (
"fmt"
"maps"
)
func main() {
m := map[int]string{
1: "one",
2: "two",
3: "three",
}
keys := maps.Keys(m)
fmt.Println(keys)
}
Результат выполнения кода:
[1 2 3]
Обратите внимание, что порядок ключей в выводе может быть другим, например [2 3 1] или [3 1 2].
Пример
Давайте получим ключи карты со строковыми ключами и целочисленными значениями:
package main
import (
"fmt"
"maps"
)
func main() {
m := map[string]int{
"a": 1,
"b": 2,
"c": 3,
}
keys := maps.Keys(m)
fmt.Println(keys)
}
Результат выполнения кода:
[a b c]
Как и в предыдущем примере, порядок ключей может быть произвольным.
Пример
Давайте используем полученные ключи для итерации по карте:
package 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])
}
}
Результат выполнения кода:
"x: 10"
"y: 20"
"z: 30"
Порядок вывода строк может быть произвольным из-за недетерминированного порядка ключей.
Смотрите также
-
функцию
maps.Values,
которая возвращает срез значений карты -
функцию
maps.Equal,
которая сравнивает две карты на равенство -
функцию
maps.Clone,
которая создает поверхностную копию карты -
функцию
maps.Copy,
которая копирует все ключи и значения из одной карты в другую