Back to questions
Junior — Middle
84
Можно ли извлечь значение из карты, которая ещё не была инициализирована?
Companies where asked
Эрливидео
Самокат Тех
Answer from AI
sobes.tech AI
В Go, если карта (map) не была инициализирована (то есть равна nil), попытка извлечь из неё значение по ключу не вызовет паники, а просто вернёт нулевое значение для типа значения и булевый флаг false, указывающий, что ключ отсутствует.
Пример:
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Выведет: 0 false
Однако, если попытаться записать значение в неинициализированную карту, возникнет паника:
m["key"] = 10 // panic: assignment to entry in nil map
Поэтому для безопасного использования карты её нужно инициализировать, например, с помощью make:
m = make(map[string]int)
m["key"] = 10 // теперь работает корректно