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

Параметр-карта в Go

Давайте теперь будем передавать в функцию карту и читать пары внутри. Тип параметра пишут как map с ключом и значением, например map[string]int. По ключу читают и записывают так же, как в обычном коде.

Добавим балл по имени внутри функции func:

package main import "fmt" func func(scores map[string]int, name string, pts int) { scores[name] = pts } func main() { data := map[string]int{} func(data, "ann", 10) fmt.Println(data["ann"]) // выведет 10 }

После вызова в data по ключу "ann" лежит 10. Запись по ключу внутри функции видна снаружи. Пустую карту создают литералом map[string]int{}, а не нулевым значением: запись в нулевую карту завершит программу ошибкой.

Прочитать значение и вернуть его можно функцией func:

package main import "fmt" func func(scores map[string]int, name string) int { return scores[name] } func main() { data := map[string]int{"ann": 5} fmt.Println(func(data, "ann")) // выведет 5 }

Дана карта:

counts := map[string]int{"go": 1}

Напишите функцию func с параметром-картой и ключом name, которая записывает 3 по этому ключу. Вызовите с counts и ключом "go", затем выведите значение.

Напишите функцию func с картой map[string]int и ключом, которая возвращает true, если ключ есть. Проверьте на карте с одной парой и на пустой карте.

Скажите, видна ли снаружи запись scores[name] = pts, сделанная внутри функции.

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