Junior — Middle
Que se passe-t-il lorsque vous travaillez avec un objet de type Map si vous n'effectuez pas d'initialisation via make ou si vous n'attribuez pas une valeur directement lors de la déclaration?
sobes.tech IA
Réponse de l'IA
В Go объект типа map при объявлении без инициализации (через make или присвоение значения) имеет значение nil. Попытка записать элемент в такой nil-map приведет к панике времени выполнения (runtime panic). Однако чтение из nil-map безопасно и просто вернет нулевое значение для типа значения.
Пример:
var m map[string]int // m == nil
// Чтение безопасно:
fmt.Println(m["key"]) // Выведет 0
// Запись вызовет панику:
m["key"] = 10 // panic: assignment to entry in nil map
Поэтому перед использованием map для записи обязательно нужно инициализировать её, например:
m = make(map[string]int)