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

Изменение значений в цикле в Go

Значение уже существующего ключа можно заменить прямо в цикле. Запись идет через имя карты и переменную ключа из цикла: m[k] = .... Так обновляют все числа или только часть по условию.

Удвоим каждое значение в маленькой карте:

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

После цикла "a" дает 2, "b" дает 4. Новые ключи в этом примере не добавляют: набор ключей тот же, что до цикла.

Менять можно выборочно:

ages := map[string]int{"ann": 20, "bob": 30} for k, v := range ages { if v < 25 { ages[k] = v + 1 } } fmt.Println(ages["ann"])

Только "ann" получил 21. Добавление нового ключа внутри range по той же карте в учебных задачах не используют: поведение обхода от этого может запутаться.

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

grid := map[string]int{"x": 3, "y": 5}

Прибавьте 10 к каждому значению через запись по k. Выведите значения по обоим ключам.

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

trio := map[string]int{"a": 1, "b": 2, "c": 3}

Обнулите все значения в цикле, не удаляя ключи. Выведите длину.

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

tags := map[string]string{"a1": "go", "b2": "book", "a3": "lang"}

Замените значения на "*" только для ключей, начинающихся с "a".

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