Ключи и значения карты в Go
Все ключи можно собрать в срез, пройдя по карте. То же отдельно делают для значений. На каждом круге цикла берут ключ или значение и добавляют в конец среза командой добавления из раздела про срезы.
Соберем ключи и значения из двух пар:
ages := map[string]int{"ann": 20, "bob": 30}
keys := []string{}
vals := []int{}
for k, v := range ages {
keys = append(keys, k)
vals = append(vals, v)
}
fmt.Println(keys)
fmt.Println(vals)
В keys две строки, в vals два числа.
Порядок элементов в срезах повторяет порядок
обхода карты, а он не фиксирован.
Можно собрать только ключи, если значения не нужны:
room := map[string]int{"a": 1, "b": 2}
keys := []string{}
for k := range room {
keys = append(keys, k)
}
fmt.Println(len(keys))
Дана следующая карта:
grid := map[string]int{"x": 1, "y": 2}
Соберите все ключи в names и выведите
срез.
Дана следующая карта:
grid := map[string]int{"x": 1, "y": 2}
Соберите все значения в nums и выведите
длину nums.
Дана следующая карта:
solo := map[string]int{"only": 1}
Постройте срезы ключей и значений и скажите, сколько элементов в каждом.