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

Нулевая карта в Go

Карта без создания еще не готова принимать записи. Если переменную объявить типом карты, но не создавать литералом и не вызывать команду создания, она остается в нулевом состоянии. Для карт это особое значение, по смыслу близкое к нулевому срезу: читать можно, писать нельзя.

Объявим переменную карты без пар и прочитаем отсутствующий ключ:

var m map[string]int fmt.Println(m["ghost"]) fmt.Println(len(m))

Чтение по ключу, которого нет, дает нулевое значение типа значения, здесь 0. Длина такой переменной тоже 0, хотя это не то же самое, что пустая созданная карта из следующего урока.

Запись по ключу в такую переменную программу останавливает. Такой фрагмент нельзя запускать как рабочий пример:

var m map[string]int m["ann"] = 20

Перед записью нужно создать карту литералом или командой создания из предыдущего урока. Тогда присваивание по ключу отработает нормально.

Даны переменные:

var idle map[string]int

Выведите значение по ключу "any" и длину idle.

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

var m map[string]int

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

Сравните объявленную без создания карту и карту из команды создания с нулевой длиной. Чем они отличаются для записи?

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