Запись в nil map роняет сервис, а чтение — нет
Структура конфигурации собирается из YAML, и поле Limits осталось незаполненным:
type Config struct {
Limits map[string]int
}
func main() {
var cfg Config
fmt.Println(cfg.Limits["rps"])
cfg.Limits["rps"] = 100
}
Какое поведение верно?
- Чтение вернёт `0`, а запись вызовет панику: присваивание в nil map
- И чтение, и запись вызовут панику — map не инициализирована
- Map создастся автоматически при первой записи, паники не будет
- Компилятор не пропустит обращение к неинициализированной map
