Нулевая карта в 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
Скажите, можно ли сразу записать число по ключу без создания карты.
Сравните объявленную без создания карту и карту из команды создания с нулевой длиной. Чем они отличаются для записи?