Ответ
Zero value map — это nil, и попытка записи в него вызовет панику. Перед использованием нужно инициализировать через make или литерал:
var m map[string]int // nil
m["key"] = 1 // panic: assignment to nil map
m = make(map[string]int) // OK
Zero value слайса — тоже nil, но его можно безопасно использовать с append (под капотом создастся новый массив). Однако прямое обращение по индексу вызовет панику:
var s []int // nil
s = append(s, 42) // OK
fmt.Println(s[0]) // panic: index out of range
Ключевое отличие: слайс поддерживает append в nil-состоянии, а map требует явной инициализации перед любыми операциями записи.