Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpIrKy 97 of 280 menu
◀ ▶

Ключи карты через итератор в Go

Ключи карты можно перебрать отдельно, без значений, и порядок по-прежнему случайный. Цикл перебора по карте по-прежнему дает пару ключ и значение, а когда нужны только имена полей, удобнее взять готовый шаг из пакета maps.

Из пакета maps команда Keys отдает итератор по типу ключа. Его подставляют в range так же, как срез или карту. Порядок обхода не совпадает с порядком вставки и меняется от запуска к запуску, как при обычном переборе карты.

На экране две строки с именами ключей, но их порядок заранее не угадаешь. Значения 1 и 2 в этом цикле не используются: переменная цикла получает только ключ.

Выведем ключи небольшой карты:

package main import ( "fmt" "maps" ) func main() { m := map[string]int{ "east": 1, "west": 2, } for k := range maps.Keys(m) { fmt.Println(k) } }

Дана следующая карта:

scores := map[string]int{ "ann": 10, "bob": 12, }

Выведите каждый ключ карты scores отдельной строкой через итератор из пакета maps.

Дана следующая карта:

flags := map[int]string{ 1: "on", 2: "off", }

Посчитайте, сколько ключей у flags, перебирая только ключи без значений.

Дан следующий код:

m := map[string]int{"a": 1, "b": 2} for k := range m { fmt.Println(k) }

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

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить